From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bernhard Rosenkraenzer Subject: [PATCH] Fix speakers on Acer Predator Helios 500 Ryzen laptops Date: Tue, 5 Mar 2019 00:38:19 +0100 Message-ID: <20190304233818.GA25749@lindev.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Return-path: Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org To: linux-kernel@vger.kernel.org Cc: alsa-devel@alsa-project.org, perex@perex.cz, tiwai@suse.com List-Id: alsa-devel@alsa-project.org 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 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 }), {} };