mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-13 01:08:50 +00:00
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>
This commit is contained in:
parent
deb6596f16
commit
e7729a4153
@ -1819,6 +1819,7 @@ enum {
|
|||||||
ALC889_FIXUP_DAC_ROUTE,
|
ALC889_FIXUP_DAC_ROUTE,
|
||||||
ALC889_FIXUP_MBP_VREF,
|
ALC889_FIXUP_MBP_VREF,
|
||||||
ALC889_FIXUP_IMAC91_VREF,
|
ALC889_FIXUP_IMAC91_VREF,
|
||||||
|
ALC889_FIXUP_MBA11_VREF,
|
||||||
ALC889_FIXUP_MBA21_VREF,
|
ALC889_FIXUP_MBA21_VREF,
|
||||||
ALC882_FIXUP_INV_DMIC,
|
ALC882_FIXUP_INV_DMIC,
|
||||||
ALC882_FIXUP_NO_PRIMARY_HP,
|
ALC882_FIXUP_NO_PRIMARY_HP,
|
||||||
@ -1949,6 +1950,16 @@ static void alc889_fixup_imac91_vref(struct hda_codec *codec,
|
|||||||
alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids));
|
alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Set VREF on speaker pins on mba11 */
|
||||||
|
static void alc889_fixup_mba11_vref(struct hda_codec *codec,
|
||||||
|
const struct hda_fixup *fix, int action)
|
||||||
|
{
|
||||||
|
static hda_nid_t nids[1] = { 0x18 };
|
||||||
|
|
||||||
|
if (action == HDA_FIXUP_ACT_INIT)
|
||||||
|
alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids));
|
||||||
|
}
|
||||||
|
|
||||||
/* Set VREF on speaker pins on mba21 */
|
/* Set VREF on speaker pins on mba21 */
|
||||||
static void alc889_fixup_mba21_vref(struct hda_codec *codec,
|
static void alc889_fixup_mba21_vref(struct hda_codec *codec,
|
||||||
const struct hda_fixup *fix, int action)
|
const struct hda_fixup *fix, int action)
|
||||||
@ -2167,6 +2178,12 @@ static const struct hda_fixup alc882_fixups[] = {
|
|||||||
.chained = true,
|
.chained = true,
|
||||||
.chain_id = ALC882_FIXUP_GPIO1,
|
.chain_id = ALC882_FIXUP_GPIO1,
|
||||||
},
|
},
|
||||||
|
[ALC889_FIXUP_MBA11_VREF] = {
|
||||||
|
.type = HDA_FIXUP_FUNC,
|
||||||
|
.v.func = alc889_fixup_mba11_vref,
|
||||||
|
.chained = true,
|
||||||
|
.chain_id = ALC889_FIXUP_MBP_VREF,
|
||||||
|
},
|
||||||
[ALC889_FIXUP_MBA21_VREF] = {
|
[ALC889_FIXUP_MBA21_VREF] = {
|
||||||
.type = HDA_FIXUP_FUNC,
|
.type = HDA_FIXUP_FUNC,
|
||||||
.v.func = alc889_fixup_mba21_vref,
|
.v.func = alc889_fixup_mba21_vref,
|
||||||
@ -2242,7 +2259,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {
|
|||||||
SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC889_FIXUP_MBP_VREF),
|
SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC889_FIXUP_MBP_VREF),
|
||||||
SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF),
|
SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF),
|
||||||
SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD),
|
SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD),
|
||||||
SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBP_VREF),
|
SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBA11_VREF),
|
||||||
SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF),
|
SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF),
|
||||||
SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF),
|
SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF),
|
||||||
SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF),
|
SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user