|
@@ -5274,6 +5274,16 @@ static void alc298_fixup_speaker_volume(struct hda_codec *codec,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+/* disable DAC3 (0x06) selection on NID 0x17 as it has no volume amp control */
|
|
|
+static void alc295_fixup_disable_dac3(struct hda_codec *codec,
|
|
|
+ const struct hda_fixup *fix, int action)
|
|
|
+{
|
|
|
+ if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
|
|
+ hda_nid_t conn[2] = { 0x02, 0x03 };
|
|
|
+ snd_hda_override_conn_list(codec, 0x17, 2, conn);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/* Hook to update amp GPIO4 for automute */
|
|
|
static void alc280_hp_gpio4_automute_hook(struct hda_codec *codec,
|
|
|
struct hda_jack_callback *jack)
|
|
@@ -5466,6 +5476,7 @@ enum {
|
|
|
ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY,
|
|
|
ALC255_FIXUP_DELL_SPK_NOISE,
|
|
|
ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
|
|
|
+ ALC295_FIXUP_DISABLE_DAC3,
|
|
|
ALC280_FIXUP_HP_HEADSET_MIC,
|
|
|
ALC221_FIXUP_HP_FRONT_MIC,
|
|
|
ALC292_FIXUP_TPT460,
|
|
@@ -5480,10 +5491,12 @@ enum {
|
|
|
ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE,
|
|
|
ALC233_FIXUP_LENOVO_MULTI_CODECS,
|
|
|
ALC294_FIXUP_LENOVO_MIC_LOCATION,
|
|
|
+ ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE,
|
|
|
ALC700_FIXUP_INTEL_REFERENCE,
|
|
|
ALC274_FIXUP_DELL_BIND_DACS,
|
|
|
ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
|
|
|
ALC298_FIXUP_TPT470_DOCK,
|
|
|
+ ALC255_FIXUP_DUMMY_LINEOUT_VERB,
|
|
|
};
|
|
|
|
|
|
static const struct hda_fixup alc269_fixups[] = {
|
|
@@ -6198,6 +6211,10 @@ static const struct hda_fixup alc269_fixups[] = {
|
|
|
.chained = true,
|
|
|
.chain_id = ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE,
|
|
|
},
|
|
|
+ [ALC295_FIXUP_DISABLE_DAC3] = {
|
|
|
+ .type = HDA_FIXUP_FUNC,
|
|
|
+ .v.func = alc295_fixup_disable_dac3,
|
|
|
+ },
|
|
|
[ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = {
|
|
|
.type = HDA_FIXUP_PINS,
|
|
|
.v.pins = (const struct hda_pintbl[]) {
|
|
@@ -6283,6 +6300,18 @@ static const struct hda_fixup alc269_fixups[] = {
|
|
|
{ }
|
|
|
},
|
|
|
},
|
|
|
+ [ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE] = {
|
|
|
+ .type = HDA_FIXUP_PINS,
|
|
|
+ .v.pins = (const struct hda_pintbl[]) {
|
|
|
+ { 0x16, 0x0101102f }, /* Rear Headset HP */
|
|
|
+ { 0x19, 0x02a1913c }, /* use as Front headset mic, without its own jack detect */
|
|
|
+ { 0x1a, 0x01a19030 }, /* Rear Headset MIC */
|
|
|
+ { 0x1b, 0x02011020 },
|
|
|
+ { }
|
|
|
+ },
|
|
|
+ .chained = true,
|
|
|
+ .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
|
|
|
+ },
|
|
|
[ALC700_FIXUP_INTEL_REFERENCE] = {
|
|
|
.type = HDA_FIXUP_VERBS,
|
|
|
.v.verbs = (const struct hda_verb[]) {
|
|
@@ -6319,6 +6348,15 @@ static const struct hda_fixup alc269_fixups[] = {
|
|
|
.chained = true,
|
|
|
.chain_id = ALC293_FIXUP_LENOVO_SPK_NOISE
|
|
|
},
|
|
|
+ [ALC255_FIXUP_DUMMY_LINEOUT_VERB] = {
|
|
|
+ .type = HDA_FIXUP_PINS,
|
|
|
+ .v.pins = (const struct hda_pintbl[]) {
|
|
|
+ { 0x14, 0x0201101f },
|
|
|
+ { }
|
|
|
+ },
|
|
|
+ .chained = true,
|
|
|
+ .chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|
@@ -6367,10 +6405,13 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|
|
SND_PCI_QUIRK(0x1028, 0x0725, "Dell Inspiron 3162", ALC255_FIXUP_DELL_SPK_NOISE),
|
|
|
SND_PCI_QUIRK(0x1028, 0x075b, "Dell XPS 13 9360", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE),
|
|
|
SND_PCI_QUIRK(0x1028, 0x075d, "Dell AIO", ALC298_FIXUP_SPK_VOLUME),
|
|
|
+ SND_PCI_QUIRK(0x1028, 0x07b0, "Dell Precision 7520", ALC295_FIXUP_DISABLE_DAC3),
|
|
|
SND_PCI_QUIRK(0x1028, 0x0798, "Dell Inspiron 17 7000 Gaming", ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER),
|
|
|
+ SND_PCI_QUIRK(0x1028, 0x080c, "Dell WYSE", ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE),
|
|
|
SND_PCI_QUIRK(0x1028, 0x082a, "Dell XPS 13 9360", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE),
|
|
|
SND_PCI_QUIRK(0x1028, 0x084b, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
|
|
|
SND_PCI_QUIRK(0x1028, 0x084e, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
|
|
|
+ SND_PCI_QUIRK(0x1028, 0x0873, "Dell Precision 3930", ALC255_FIXUP_DUMMY_LINEOUT_VERB),
|
|
|
SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
|
|
SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
|
|
SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
|
|
@@ -6508,9 +6549,11 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|
|
SND_PCI_QUIRK(0x17aa, 0x2245, "Thinkpad T470", ALC298_FIXUP_TPT470_DOCK),
|
|
|
SND_PCI_QUIRK(0x17aa, 0x2246, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
|
|
|
SND_PCI_QUIRK(0x17aa, 0x2247, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
|
|
|
+ SND_PCI_QUIRK(0x17aa, 0x2249, "Thinkpad", ALC292_FIXUP_TPT460),
|
|
|
SND_PCI_QUIRK(0x17aa, 0x224b, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
|
|
|
SND_PCI_QUIRK(0x17aa, 0x224c, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
|
|
|
SND_PCI_QUIRK(0x17aa, 0x224d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
|
|
|
+ SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
|
|
SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
|
|
|
SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
|
|
|
SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
|
|
@@ -6872,7 +6915,7 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
|
|
|
{0x12, 0x90a60120},
|
|
|
{0x14, 0x90170110},
|
|
|
{0x21, 0x0321101f}),
|
|
|
- SND_HDA_PIN_QUIRK(0x10ec0289, 0x1028, "Dell", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
|
|
|
+ SND_HDA_PIN_QUIRK(0x10ec0289, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,
|
|
|
{0x12, 0xb7a60130},
|
|
|
{0x14, 0x90170110},
|
|
|
{0x21, 0x04211020}),
|