* [PATCH] ALSA: hda/realtek: Add quirk for Lenovo ThinkBook 16p Gen 3 ARH (21EK)
@ 2026-09-23 1:37 KIM MinWoo
2026-09-28 11:35 ` Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: KIM MinWoo @ 2026-09-23 1:37 UTC (permalink / raw)
To: linux-sound; +Cc: tiwai, perex, shenghao-ding
The ThinkBook 16p Gen 3 ARH (SSID 17aa:3871) has a TI TAS2563
amplifier device on I2C, exposed by ACPI as INT8866, the same
arrangement as the Yoga 7 14ARB7 (SSID 17aa:3870). Without a quirk,
the codec falls back to the vendor-wide Lenovo quirk
(ALC269_FIXUP_LENOVO_XPAD_ACPI), the amplifier is never bound, and the
internal speakers stay silent while the headphone output works.
Reuse the Yoga 7 14ARB7 fixup, which binds the INT8866 device as a side
codec. ALC287_FIXUP_TAS2781_I2C does not work on this machine because it
looks for a TIAS2781 device.
Assisted-by: LLM
Signed-off-by: KIM MinWoo <phrimm136@gmail.com>
---
Tested on 7.2.6-arch2-1 (BIOS KCCN40WW) with this patch applied.
Kernel log:
without the patch:
ALC287: picked fixup for PCI SSID 17aa:0000
with the patch:
ALC287: picked fixup for codec SSID 17aa:3871
bound i2c-INT8866:00 (ops tas2781_hda_comp_ops [snd_hda_scodec_tas2781_i2c])
With ALC287_FIXUP_TAS2781_I2C instead, the codec's component aggregate
stays "not bound" in debugfs and the speakers stay silent.
Headphone jack switching, the internal and headset microphones, and
the volume and mute keys still work with the patch.
The speakers also need the DSP tuning file TAS2XXX3871.bin, which is
not in linux-firmware; without it the amplifier driver does not enable
playback and reports:
tas2781-hda i2c-INT8866:00: Direct firmware load for TAS2XXX3871.bin failed with error -2
For testing, I symlinked the Yoga 7 14ARB7 file
TAS2XXX3870.bin as TAS2XXX3871.bin, and the speakers play.
Shenghao, could TI provide the tuning file for 17aa:3871?
Fang Junhua reported the same symptom on machine type 21EK to
alsa-devel on 2026-03-04 ("[ALSA][ALC287][TAS2781] Lenovo 21EK
speakers silent on Linux, headphones work"). The codec dump attached
to that report shows the same SSID, 17aa:3871.
An AI coding assistant was used to diagnose the issue (missing quirk,
no model alias for the fixup, missing firmware), to choose the fixup
by tracing the ACPI name of the amplifier, and to draft this changelog.
I reviewed the change and tested it on the hardware.
sound/hda/codecs/realtek/alc269.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index 8f55c3c..cc52f41 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -8193,6 +8193,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
HDA_CODEC_QUIRK(0x17aa, 0x38a8, "Legion Pro 7 16ARX8H", ALC287_FIXUP_TAS2781_I2C), /* this must match before PCI SSID 17aa:386f below */
SND_PCI_QUIRK(0x17aa, 0x386f, "Legion Pro 7i 16IAX7", ALC287_FIXUP_CS35L41_I2C_2),
SND_PCI_QUIRK(0x17aa, 0x3870, "Lenovo Yoga 7 14ARB7", ALC287_FIXUP_YOGA7_14ARB7_I2C),
+ SND_PCI_QUIRK(0x17aa, 0x3871, "Lenovo ThinkBook 16p Gen 3 ARH", ALC287_FIXUP_YOGA7_14ARB7_I2C),
SND_PCI_QUIRK(0x17aa, 0x3874, "Legion 7i 16IAX7", ALC287_FIXUP_CS35L41_I2C_2),
SND_PCI_QUIRK(0x17aa, 0x3877, "Lenovo Legion 7 Slim 16ARHA7", ALC287_FIXUP_CS35L41_I2C_2),
SND_PCI_QUIRK(0x17aa, 0x3878, "Lenovo Legion 7 Slim 16ARHA7", ALC287_FIXUP_CS35L41_I2C_2),
--
2.55.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] ALSA: hda/realtek: Add quirk for Lenovo ThinkBook 16p Gen 3 ARH (21EK)
2026-09-23 1:37 [PATCH] ALSA: hda/realtek: Add quirk for Lenovo ThinkBook 16p Gen 3 ARH (21EK) KIM MinWoo
@ 2026-09-28 11:35 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2026-09-28 11:35 UTC (permalink / raw)
To: KIM MinWoo; +Cc: linux-sound, tiwai, perex, shenghao-ding
On Wed, 23 Sep 2026 03:37:56 +0200,
KIM MinWoo wrote:
>
> The ThinkBook 16p Gen 3 ARH (SSID 17aa:3871) has a TI TAS2563
> amplifier device on I2C, exposed by ACPI as INT8866, the same
> arrangement as the Yoga 7 14ARB7 (SSID 17aa:3870). Without a quirk,
> the codec falls back to the vendor-wide Lenovo quirk
> (ALC269_FIXUP_LENOVO_XPAD_ACPI), the amplifier is never bound, and the
> internal speakers stay silent while the headphone output works.
>
> Reuse the Yoga 7 14ARB7 fixup, which binds the INT8866 device as a side
> codec. ALC287_FIXUP_TAS2781_I2C does not work on this machine because it
> looks for a TIAS2781 device.
>
> Assisted-by: LLM
> Signed-off-by: KIM MinWoo <phrimm136@gmail.com>
Applied now. Thanks.
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-09-28 11:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-23 1:37 [PATCH] ALSA: hda/realtek: Add quirk for Lenovo ThinkBook 16p Gen 3 ARH (21EK) KIM MinWoo
2026-09-28 11:35 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox