aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorAdrien Vergé <adrienverge@gmail.com>2014-01-24 14:56:14 -0500
committerTakashi Iwai <tiwai@suse.de>2014-01-25 03:17:34 -0500
commite7729a415315fcd9516912050d85d5aaebcededc (patch)
tree959cf966b809458adcbd0145c16eb718d097a416 /sound
parentdeb6596f163b7340ff8f5a7c23e25317e165c669 (diff)
ALSA: hda - Fix silent output on MacBook Air 1,1
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") Cc: <stable@vger.kernel.org> [v3.4+] Tested-by: Adrien Vergé <adrienverge@gmail.com> Signed-off-by: Adrien Vergé <adrienverge@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-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 c435ae0a19a6..d723c1fdd5f3 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1819,6 +1819,7 @@ enum {
1819 ALC889_FIXUP_DAC_ROUTE, 1819 ALC889_FIXUP_DAC_ROUTE,
1820 ALC889_FIXUP_MBP_VREF, 1820 ALC889_FIXUP_MBP_VREF,
1821 ALC889_FIXUP_IMAC91_VREF, 1821 ALC889_FIXUP_IMAC91_VREF,
1822 ALC889_FIXUP_MBA11_VREF,
1822 ALC889_FIXUP_MBA21_VREF, 1823 ALC889_FIXUP_MBA21_VREF,
1823 ALC882_FIXUP_INV_DMIC, 1824 ALC882_FIXUP_INV_DMIC,
1824 ALC882_FIXUP_NO_PRIMARY_HP, 1825 ALC882_FIXUP_NO_PRIMARY_HP,
@@ -1949,6 +1950,16 @@ static void alc889_fixup_imac91_vref(struct hda_codec *codec,
1949 alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids)); 1950 alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids));
1950} 1951}
1951 1952
1953/* Set VREF on speaker pins on mba11 */
1954static void alc889_fixup_mba11_vref(struct hda_codec *codec,
1955 const struct hda_fixup *fix, int action)
1956{
1957 static hda_nid_t nids[1] = { 0x18 };
1958
1959 if (action == HDA_FIXUP_ACT_INIT)
1960 alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids));
1961}
1962
1952/* Set VREF on speaker pins on mba21 */ 1963/* Set VREF on speaker pins on mba21 */
1953static void alc889_fixup_mba21_vref(struct hda_codec *codec, 1964static void alc889_fixup_mba21_vref(struct hda_codec *codec,
1954 const struct hda_fixup *fix, int action) 1965 const struct hda_fixup *fix, int action)
@@ -2167,6 +2178,12 @@ static const struct hda_fixup alc882_fixups[] = {
2167 .chained = true, 2178 .chained = true,
2168 .chain_id = ALC882_FIXUP_GPIO1, 2179 .chain_id = ALC882_FIXUP_GPIO1,
2169 }, 2180 },
2181 [ALC889_FIXUP_MBA11_VREF] = {
2182 .type = HDA_FIXUP_FUNC,
2183 .v.func = alc889_fixup_mba11_vref,
2184 .chained = true,
2185 .chain_id = ALC889_FIXUP_MBP_VREF,
2186 },
2170 [ALC889_FIXUP_MBA21_VREF] = { 2187 [ALC889_FIXUP_MBA21_VREF] = {
2171 .type = HDA_FIXUP_FUNC, 2188 .type = HDA_FIXUP_FUNC,
2172 .v.func = alc889_fixup_mba21_vref, 2189 .v.func = alc889_fixup_mba21_vref,
@@ -2242,7 +2259,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {
2242 SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC889_FIXUP_MBP_VREF), 2259 SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC889_FIXUP_MBP_VREF),
2243 SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF), 2260 SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF),
2244 SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD), 2261 SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD),
2245 SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBP_VREF), 2262 SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBA11_VREF),
2246 SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF), 2263 SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF),
2247 SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF), 2264 SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF),
2248 SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF), 2265 SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF),