Re: [PATCH v2] ALSA: hda/realtek: Drop Yoga Pro 9 16IAH10 PCI SSID quirk
From: Takashi Iwai
Date: Mon Sep 28 2026 - 07:14:24 EST
On Mon, 21 Sep 2026 23:48:12 +0200,
Matt Barr wrote:
>
> The PCI SSID quirk added for the Lenovo Yoga Pro 9 16IAH10 (PCI SSID
> 17aa:3846, codec SSID 17aa:3920) also matches every other machine that
> shares PCI SSID 17aa:3846. snd_hda_pick_fixup() tries all PCI SSID entries
> before it falls back to the codec SSID, so those machines now get
> ALC287_FIXUP_YOGA9_SPEAKER2_TO_DAC1 and never reach their own
> codec-SSID quirk.
>
> The Lenovo Legion Pro 7 16IRX8H (product 82WQ) is one such machine: PCI
> SSID 17aa:3846, codec SSID 17aa:3884. Before this quirk it picked
> ALC287_FIXUP_TAS2781_I2C via the 17aa:3884 codec SSID fallback and bound
> its TAS2781 amplifier. With it, the codec never binds the amplifier and
> the internal speakers are silent:
>
> snd_hda_codec_alc269 hdaudioC0D0: ALC287: picked fixup for PCI SSID 17aa:3846
>
> versus, on a kernel without the quirk:
>
> snd_hda_codec_alc269 hdaudioC0D0: ALC287: picked fixup for codec SSID 17aa:3884
> snd_hda_codec_alc269 hdaudioC0D0: bound i2c-TIAS2781:00 (ops tas2781_hda_comp_ops ...)
>
> Drop the PCI SSID entry. The Yoga Pro 9 16IAH10 has the same amplifier as
> the Yoga S990-16 (codec SSID 17aa:3920), so it still gets a fixup through
> the codec SSID fallback, using the existing 17aa:3920 entry. Switch that
> entry from ALC287_FIXUP_TXNW2781_I2C to ALC287_FIXUP_YOGA9_SPEAKER2_TO_DAC1,
> which applies the DAC routing fix and then chains to
> ALC287_FIXUP_TXNW2781_I2C, so the amplifier setup is unchanged.
>
> Fixes: 41d60cbfde10 ("ALSA: hda/realtek: Fix bass speaker DAC routing for Lenovo Yoga Pro 9 16IAH10")
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=220540
> Suggested-by: Zhang Heng <zhangheng@xxxxxxxxxx>
> Signed-off-by: Matt Barr <matthewjaybarr@xxxxxxxxx>
> ---
> Hi Zhang,
>
> Thank you for the quick review. Your suggestion is cleaner than my
> version, so this v2 uses it. I checked that the 17aa:3920 entry keeps its
> amplifier setup, since the new fixup chains into ALC287_FIXUP_TXNW2781_I2C.
>
> v2: Reuse the existing 17aa:3920 entry instead of adding a codec SSID
> entry, as suggested by Zhang Heng. Built against 7.2.5 and tested on
> a Legion Pro 7 16IRX8H without the model= workaround: the codec picks
> the 17aa:3884 quirk again, binds i2c-TIAS2781:00, and the speakers
> work. Not tested on a Yoga Pro 9 16IAH10 (no hardware).
Applied now. Thanks.
Takashi