diff options
Diffstat (limited to 'sound/pci/hda')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a0a3cf956503..d11fd0160748 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -5918,6 +5918,14 @@ static void alc269_fixup_mic2_mute(struct hda_codec *codec, | |||
5918 | } | 5918 | } |
5919 | } | 5919 | } |
5920 | 5920 | ||
5921 | static void alc269_fixup_inv_dmic(struct hda_codec *codec, | ||
5922 | const struct alc_fixup *fix, int action) | ||
5923 | { | ||
5924 | if (action == ALC_FIXUP_ACT_PROBE) | ||
5925 | alc_add_inv_dmic_mixer(codec, 0x12); | ||
5926 | } | ||
5927 | |||
5928 | |||
5921 | enum { | 5929 | enum { |
5922 | ALC269_FIXUP_SONY_VAIO, | 5930 | ALC269_FIXUP_SONY_VAIO, |
5923 | ALC275_FIXUP_SONY_VAIO_GPIO2, | 5931 | ALC275_FIXUP_SONY_VAIO_GPIO2, |
@@ -5936,6 +5944,7 @@ enum { | |||
5936 | ALC269VB_FIXUP_AMIC, | 5944 | ALC269VB_FIXUP_AMIC, |
5937 | ALC269VB_FIXUP_DMIC, | 5945 | ALC269VB_FIXUP_DMIC, |
5938 | ALC269_FIXUP_MIC2_MUTE_LED, | 5946 | ALC269_FIXUP_MIC2_MUTE_LED, |
5947 | ALC269_FIXUP_INV_DMIC, | ||
5939 | }; | 5948 | }; |
5940 | 5949 | ||
5941 | static const struct alc_fixup alc269_fixups[] = { | 5950 | static const struct alc_fixup alc269_fixups[] = { |
@@ -6060,12 +6069,19 @@ static const struct alc_fixup alc269_fixups[] = { | |||
6060 | .type = ALC_FIXUP_FUNC, | 6069 | .type = ALC_FIXUP_FUNC, |
6061 | .v.func = alc269_fixup_mic2_mute, | 6070 | .v.func = alc269_fixup_mic2_mute, |
6062 | }, | 6071 | }, |
6072 | [ALC269_FIXUP_INV_DMIC] = { | ||
6073 | .type = ALC_FIXUP_FUNC, | ||
6074 | .v.func = alc269_fixup_inv_dmic, | ||
6075 | }, | ||
6063 | }; | 6076 | }; |
6064 | 6077 | ||
6065 | static const struct snd_pci_quirk alc269_fixup_tbl[] = { | 6078 | static const struct snd_pci_quirk alc269_fixup_tbl[] = { |
6079 | SND_PCI_QUIRK(0x1025, 0x029b, "Acer 1810TZ", ALC269_FIXUP_INV_DMIC), | ||
6080 | SND_PCI_QUIRK(0x1025, 0x0349, "Acer AOD260", ALC269_FIXUP_INV_DMIC), | ||
6066 | SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_MIC2_MUTE_LED), | 6081 | SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_MIC2_MUTE_LED), |
6067 | SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC), | 6082 | SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC), |
6068 | SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), | 6083 | SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), |
6084 | SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC), | ||
6069 | SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), | 6085 | SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), |
6070 | SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC), | 6086 | SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC), |
6071 | SND_PCI_QUIRK(0x1043, 0x834a, "ASUS S101", ALC269_FIXUP_STEREO_DMIC), | 6087 | SND_PCI_QUIRK(0x1043, 0x834a, "ASUS S101", ALC269_FIXUP_STEREO_DMIC), |
@@ -6534,12 +6550,7 @@ static void alc272_fixup_mario(struct hda_codec *codec, | |||
6534 | "hda_codec: failed to override amp caps for NID 0x2\n"); | 6550 | "hda_codec: failed to override amp caps for NID 0x2\n"); |
6535 | } | 6551 | } |
6536 | 6552 | ||
6537 | static void alc662_fixup_inv_dmic(struct hda_codec *codec, | 6553 | #define alc662_fixup_inv_dmic alc269_fixup_inv_dmic |
6538 | const struct alc_fixup *fix, int action) | ||
6539 | { | ||
6540 | if (action == ALC_FIXUP_ACT_PROBE) | ||
6541 | alc_add_inv_dmic_mixer(codec, 0x12); | ||
6542 | } | ||
6543 | 6554 | ||
6544 | enum { | 6555 | enum { |
6545 | ALC662_FIXUP_ASPIRE, | 6556 | ALC662_FIXUP_ASPIRE, |