diff options
author | Adrien Vergé <adrienverge@gmail.com> | 2014-01-24 14:56:14 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-02-06 14:08:15 -0500 |
commit | 3cf79a3cd9edc63a419ce3134ddc5b39575b0cdb (patch) | |
tree | a2c10844f7c9c804f135a5b68414f7122ce50457 /sound/pci | |
parent | 6d6c9853a8484a22c3aaada5664b15afae1f31cd (diff) |
ALSA: hda - Fix silent output on MacBook Air 1,1
commit e7729a415315fcd9516912050d85d5aaebcededc upstream.
Similarly to other Apple products, MBA 1,1 needs a specific quirk.
Pin 0x18 must be set to VREF_50 to have sound output. This was no
longer done since commit 1a97b7f, resulting in a mute built-in speaker.
This patch corrects the regression by creating a fixup for the MBA 1,1.
Fixes: 1a97b7f22774 ("ALSA: hda/realtek - Remove the last static quirks for ALC882")
Tested-by: Adrien Vergé <adrienverge@gmail.com>
Signed-off-by: Adrien Vergé <adrienverge@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 937079a5265a..4b06e0a64392 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -1763,6 +1763,7 @@ enum { | |||
1763 | ALC889_FIXUP_DAC_ROUTE, | 1763 | ALC889_FIXUP_DAC_ROUTE, |
1764 | ALC889_FIXUP_MBP_VREF, | 1764 | ALC889_FIXUP_MBP_VREF, |
1765 | ALC889_FIXUP_IMAC91_VREF, | 1765 | ALC889_FIXUP_IMAC91_VREF, |
1766 | ALC889_FIXUP_MBA11_VREF, | ||
1766 | ALC889_FIXUP_MBA21_VREF, | 1767 | ALC889_FIXUP_MBA21_VREF, |
1767 | ALC882_FIXUP_INV_DMIC, | 1768 | ALC882_FIXUP_INV_DMIC, |
1768 | ALC882_FIXUP_NO_PRIMARY_HP, | 1769 | ALC882_FIXUP_NO_PRIMARY_HP, |
@@ -1892,6 +1893,16 @@ static void alc889_fixup_imac91_vref(struct hda_codec *codec, | |||
1892 | alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids)); | 1893 | alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids)); |
1893 | } | 1894 | } |
1894 | 1895 | ||
1896 | /* Set VREF on speaker pins on mba11 */ | ||
1897 | static void alc889_fixup_mba11_vref(struct hda_codec *codec, | ||
1898 | const struct hda_fixup *fix, int action) | ||
1899 | { | ||
1900 | static hda_nid_t nids[1] = { 0x18 }; | ||
1901 | |||
1902 | if (action == HDA_FIXUP_ACT_INIT) | ||
1903 | alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids)); | ||
1904 | } | ||
1905 | |||
1895 | /* Set VREF on speaker pins on mba21 */ | 1906 | /* Set VREF on speaker pins on mba21 */ |
1896 | static void alc889_fixup_mba21_vref(struct hda_codec *codec, | 1907 | static void alc889_fixup_mba21_vref(struct hda_codec *codec, |
1897 | const struct hda_fixup *fix, int action) | 1908 | const struct hda_fixup *fix, int action) |
@@ -2096,6 +2107,12 @@ static const struct hda_fixup alc882_fixups[] = { | |||
2096 | .chained = true, | 2107 | .chained = true, |
2097 | .chain_id = ALC882_FIXUP_GPIO1, | 2108 | .chain_id = ALC882_FIXUP_GPIO1, |
2098 | }, | 2109 | }, |
2110 | [ALC889_FIXUP_MBA11_VREF] = { | ||
2111 | .type = HDA_FIXUP_FUNC, | ||
2112 | .v.func = alc889_fixup_mba11_vref, | ||
2113 | .chained = true, | ||
2114 | .chain_id = ALC889_FIXUP_MBP_VREF, | ||
2115 | }, | ||
2099 | [ALC889_FIXUP_MBA21_VREF] = { | 2116 | [ALC889_FIXUP_MBA21_VREF] = { |
2100 | .type = HDA_FIXUP_FUNC, | 2117 | .type = HDA_FIXUP_FUNC, |
2101 | .v.func = alc889_fixup_mba21_vref, | 2118 | .v.func = alc889_fixup_mba21_vref, |
@@ -2165,7 +2182,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { | |||
2165 | SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC889_FIXUP_MBP_VREF), | 2182 | SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC889_FIXUP_MBP_VREF), |
2166 | SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF), | 2183 | SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF), |
2167 | SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD), | 2184 | SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD), |
2168 | SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBP_VREF), | 2185 | SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBA11_VREF), |
2169 | SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF), | 2186 | SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF), |
2170 | SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF), | 2187 | SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF), |
2171 | SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF), | 2188 | SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF), |