Re: [PATCH] Fix speakers on Acer Predator Helios 500 Ryzen laptops

From: Takashi Iwai
Date: Wed Mar 13 2019 - 06:39:30 EST


On Wed, 13 Mar 2019 11:30:48 +0100,
Takashi Iwai wrote:
>
> On Tue, 05 Mar 2019 00:38:19 +0100,
> Bernhard Rosenkraenzer wrote:
> >
> > On an Acer Predator Helios 500 (Ryzen version), the laptop's speakers
> > don't work out of the box.
> >
> > The problem can be worked around with hdajackretask, remapping the
> > "Black Headphone, Right side" pin (0x21) to the Internal speaker.
> >
> > This patch adds a quirk to change this mapping by default.
> >
> > Signed-off-by: Bernhard Rosenkraenzer <bero@xxxxxxxxx>
>
> Applied, thanks.

... and looking at the patch again, I found that you added
ALC299_FIXUP_PREDATOR_SPK definition in the wrong place. It should be
a quirk for alc269-variant while the patch added to alc882-variant.

Also, the addition to alc269_pin_fixup_tbl looks superfluous. It's a
table to look up the pattern matching of pin configs BIOS sets up, not
the result of the pins after applying the quirk.

The corrected patch is below. Could you check whether it still works
as expected?


thanks,

Takashi

-- 8< --
From: Bernhard Rosenkraenzer <bero@xxxxxxxxx>
Subject: [PATCH] ALSA: hda/realtek - Fix speakers on Acer Predator Helios 500 Ryzen laptops

On an Acer Predator Helios 500 (Ryzen version), the laptop's speakers
don't work out of the box.

The problem can be worked around with hdajackretask, remapping the
"Black Headphone, Right side" pin (0x21) to the Internal speaker.

This patch adds a quirk to change this mapping by default.

Signed-off-by: Bernhard Rosenkraenzer <bero@xxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
---
sound/pci/hda/patch_realtek.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index c8413d44973c..d47e2fd0a523 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -5673,6 +5673,7 @@ enum {
ALC225_FIXUP_HEADSET_JACK,
ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
+ ALC299_FIXUP_PREDATOR_SPK,
};

static const struct hda_fixup alc269_fixups[] = {
@@ -6639,6 +6640,13 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC285_FIXUP_LENOVO_HEADPHONE_NOISE
},
+ [ALC299_FIXUP_PREDATOR_SPK] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+ { 0x21, 0x90170150 }, /* use as headset mic, without its own jack detect */
+ { }
+ }
+ },
};

static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -6655,6 +6663,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS),
SND_PCI_QUIRK(0x1025, 0x102b, "Acer Aspire C24-860", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1025, 0x106d, "Acer Cloudbook 14", ALC283_FIXUP_CHROME_BOOK),
+ SND_PCI_QUIRK(0x1025, 0x1246, "Acer Predator Helios 500", ALC299_FIXUP_PREDATOR_SPK),
SND_PCI_QUIRK(0x1025, 0x128f, "Acer Veriton Z6860G", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1025, 0x1290, "Acer Veriton Z4860G", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1025, 0x1291, "Acer Veriton Z4660G", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE),
@@ -7049,6 +7058,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
{.id = ALC255_FIXUP_DELL_HEADSET_MIC, .name = "alc255-dell-headset"},
{.id = ALC295_FIXUP_HP_X360, .name = "alc295-hp-x360"},
{.id = ALC225_FIXUP_HEADSET_JACK, .name = "alc-sense-combo"},
+ {.id = ALC299_FIXUP_PREDATOR_SPK, .name = "predator-spk"},
{}
};
#define ALC225_STANDARD_PINS \
--
2.16.4