2014-01-24 19:57:00

by Adrien Vergé

[permalink] [raw]
Subject: [PATCH] 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.

Tested-by: Adrien Vergé <[email protected]>
Signed-off-by: Adrien Vergé <[email protected]>
---
sound/pci/hda/patch_realtek.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index c564694..723de28 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1780,6 +1780,7 @@ enum {
ALC889_FIXUP_DAC_ROUTE,
ALC889_FIXUP_MBP_VREF,
ALC889_FIXUP_IMAC91_VREF,
+ ALC889_FIXUP_MBA11_VREF,
ALC889_FIXUP_MBA21_VREF,
ALC882_FIXUP_INV_DMIC,
ALC882_FIXUP_NO_PRIMARY_HP,
@@ -1910,6 +1911,16 @@ static void alc889_fixup_imac91_vref(struct hda_codec *codec,
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 */
static void alc889_fixup_mba21_vref(struct hda_codec *codec,
const struct hda_fixup *fix, int action)
@@ -2119,6 +2130,12 @@ static const struct hda_fixup alc882_fixups[] = {
.chained = true,
.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] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc889_fixup_mba21_vref,
@@ -2194,7 +2211,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, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF),
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, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF),
SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF),
--
1.8.5.2


2014-01-24 20:14:47

by Paul Bolle

[permalink] [raw]
Subject: Re: [PATCH] ALSA: hda - Fix silent output on MacBook Air 1,1

On Fri, 2014-01-24 at 14:56 -0500, Adrien Vergé wrote:
> 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.

Commit 1a97b7f ("ALSA: hda/realtek - Remove the last static quirks for
ALC882") was included in v3.4. Did no-one notice this for 9 releases?

> This patch corrects the regression by creating a fixup for the MBA 1,1.
>
> Tested-by: Adrien Vergé <[email protected]>
> Signed-off-by: Adrien Vergé <[email protected]>


Paul Bolle

2014-01-24 20:46:31

by Adrien Vergé

[permalink] [raw]
Subject: Re: [PATCH] ALSA: hda - Fix silent output on MacBook Air 1,1

I think very few people use Linux on their MBA 1,1. Moreover, part of
them remained on v2.6.

2014/1/24 Paul Bolle <[email protected]>:
> On Fri, 2014-01-24 at 14:56 -0500, Adrien Vergé wrote:
>> 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.
>
> Commit 1a97b7f ("ALSA: hda/realtek - Remove the last static quirks for
> ALC882") was included in v3.4. Did no-one notice this for 9 releases?
>
>> This patch corrects the regression by creating a fixup for the MBA 1,1.
>>
>> Tested-by: Adrien Vergé <[email protected]>
>> Signed-off-by: Adrien Vergé <[email protected]>
>
>
> Paul Bolle
>

2014-01-24 21:08:13

by Paul Bolle

[permalink] [raw]
Subject: Re: [PATCH] ALSA: hda - Fix silent output on MacBook Air 1,1

On Fri, 2014-01-24 at 15:46 -0500, Adrien Vergé wrote:
> I think very few people use Linux on their MBA 1,1. Moreover, part of
> them remained on v2.6.

I see. Well, if your analysis is correct I think you're supposed to add
Fixes: 1a97b7f22774 ("ALSA: hda/realtek - Remove the last static quirks for ALC882")

to your commit explanation. Not sure, since this tag is not documented,
as far as I can see.


Paul Bolle

2014-01-25 08:18:58

by Takashi Iwai

[permalink] [raw]
Subject: Re: [PATCH] ALSA: hda - Fix silent output on MacBook Air 1,1

At Fri, 24 Jan 2014 22:08:05 +0100,
Paul Bolle wrote:
>
> On Fri, 2014-01-24 at 15:46 -0500, Adrien Vergé wrote:
> > I think very few people use Linux on their MBA 1,1. Moreover, part of
> > them remained on v2.6.
>
> I see. Well, if your analysis is correct I think you're supposed to add
> Fixes: 1a97b7f22774 ("ALSA: hda/realtek - Remove the last static quirks for ALC882")
>
> to your commit explanation. Not sure, since this tag is not documented,
> as far as I can see.

I applied with fixes and cc-to-stable tags now.

thanks,

Takashi

2014-01-25 10:17:40

by Nicolo'

[permalink] [raw]
Subject: Re: [PATCH] ALSA: hda - Fix silent output on MacBook Air 1,1

I can confirm this happens on my machine too: does anybody have a hint
on why changing VREF on 0x18 mutes/unmutes speakers and hp, which are
on 0x14 and 0x15 ?

On Sat, Jan 25, 2014 at 9:18 AM, Takashi Iwai <[email protected]> wrote:
> At Fri, 24 Jan 2014 22:08:05 +0100,
> Paul Bolle wrote:
>>
>> On Fri, 2014-01-24 at 15:46 -0500, Adrien Verg? wrote:
>> > I think very few people use Linux on their MBA 1,1. Moreover, part of
>> > them remained on v2.6.
>>
>> I see. Well, if your analysis is correct I think you're supposed to add
>> Fixes: 1a97b7f22774 ("ALSA: hda/realtek - Remove the last static quirks for ALC882")
>>
>> to your commit explanation. Not sure, since this tag is not documented,
>> as far as I can see.
>
> I applied with fixes and cc-to-stable tags now.
>
> thanks,
>
> Takashi

2014-01-25 14:36:42

by Adrien Vergé

[permalink] [raw]
Subject: Re: [PATCH] ALSA: hda - Fix silent output on MacBook Air 1,1

2014-01-24 Paul Bolle <[email protected]>:
> I see. Well, if your analysis is correct I think you're supposed to add
> Fixes: 1a97b7f22774 ("ALSA: hda/realtek - Remove the last static quirks for ALC882")

Sorry for that. Thank you for correcting.

2014-01-25 Nicolo' <[email protected]>:
> I can confirm this happens on my machine too: does anybody have a hint
> on why changing VREF on 0x18 mutes/unmutes speakers and hp, which are
> on 0x14 and 0x15 ?

Very strange indeed. However Nicolo', on my machine (with v3.13),
playing with pin 0x18 only mutes/unmutes speakers, not headphones.

2014-01-25 14:47:28

by Nicolo'

[permalink] [raw]
Subject: Re: [PATCH] ALSA: hda - Fix silent output on MacBook Air 1,1

I stand corrected, also on mine (3.2) VREF on 0x18 mutes only speakers

On Sat, Jan 25, 2014 at 3:36 PM, Adrien Verg? <[email protected]> wrote:
> 2014-01-24 Paul Bolle <[email protected]>:
>> I see. Well, if your analysis is correct I think you're supposed to add
>> Fixes: 1a97b7f22774 ("ALSA: hda/realtek - Remove the last static quirks for ALC882")
>
> Sorry for that. Thank you for correcting.
>
> 2014-01-25 Nicolo' <[email protected]>:
>> I can confirm this happens on my machine too: does anybody have a hint
>> on why changing VREF on 0x18 mutes/unmutes speakers and hp, which are
>> on 0x14 and 0x15 ?
>
> Very strange indeed. However Nicolo', on my machine (with v3.13),
> playing with pin 0x18 only mutes/unmutes speakers, not headphones.