aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorAdrien Vergé <adrienverge@gmail.com>2014-01-24 14:56:14 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-02-06 14:08:15 -0500
commit3cf79a3cd9edc63a419ce3134ddc5b39575b0cdb (patch)
treea2c10844f7c9c804f135a5b68414f7122ce50457 /sound/pci
parent6d6c9853a8484a22c3aaada5664b15afae1f31cd (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.c19
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 */
1897static 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 */
1896static void alc889_fixup_mba21_vref(struct hda_codec *codec, 1907static 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),