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

From: Bernhard Rosenkraenzer
Date: Mon Mar 04 2019 - 18:45:33 EST


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>


diff -up linux-5.0-rc8/sound/pci/hda/patch_realtek.c.0006~ linux-5.0-rc8/sound/pci/hda/patch_realtek.c
--- linux-5.0-rc8/sound/pci/hda/patch_realtek.c.0006~ 2019-02-25 01:46:45.000000000 +0100
+++ linux-5.0-rc8/sound/pci/hda/patch_realtek.c 2019-02-25 17:55:27.032586591 +0100
@@ -1857,6 +1857,7 @@ enum {
ALC1220_FIXUP_CLEVO_P950,
ALC1220_FIXUP_SYSTEM76_ORYP5,
ALC1220_FIXUP_SYSTEM76_ORYP5_PINS,
+ ALC299_FIXUP_PREDATOR_SPK,
};

static void alc889_fixup_coef(struct hda_codec *codec,
@@ -6627,6 +6628,13 @@ static const struct hda_fixup alc269_fix
.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[] = {
@@ -6643,6 +6651,7 @@ static const struct snd_pci_quirk alc269
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),
@@ -7037,6 +7046,7 @@ static const struct hda_model_fixup alc2
{.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 \
@@ -7421,6 +7431,8 @@ static const struct snd_hda_pin_quirk al
ALC225_STANDARD_PINS,
{0x12, 0xb7a60130},
{0x17, 0x90170110}),
+ SND_HDA_PIN_QUIRK(0x10221457, 0x1028, "Acer", ALC299_FIXUP_PREDATOR_SPK,
+ { 0x21, 0x90170150 }),
{}
};