diff options
author | Adrien Vergé <adrienverge@gmail.com> | 2014-01-24 14:56:14 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-01-25 03:17:34 -0500 |
commit | e7729a415315fcd9516912050d85d5aaebcededc (patch) | |
tree | 959cf966b809458adcbd0145c16eb718d097a416 /sound | |
parent | deb6596f163b7340ff8f5a7c23e25317e165c669 (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.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 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 */ | ||
1954 | static 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 */ |
1953 | static void alc889_fixup_mba21_vref(struct hda_codec *codec, | 1964 | static 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), |