[PATCH] ALSA: hda/realtek: enable AW88399 on Lenovo Legion R9000P AFR10

From: Marco Giunta

Date: Fri Oct 09 2026 - 11:58:32 EST


Add codec SSID entries for the Lenovo Legion R9000P AFR10 (83F6),
which uses the same ALC287 + AW88399 smart amplifier configuration
as the existing supported Legion models.

DSDT inspection confirms identical AWDZ8399 ACPI device layout
with reversed I2C addresses. The channel swap quirk applies.

Codec SSIDs (Lenovo vendor ID 0x17aa):

* 0x3934: Legion R9000P AFR10 (AMD)
* 0x3935: Legion R9000P AFR10 (AMD)

Signed-off-by: Marco Giunta <marco_giunta@xxxxxxxxxx>
---
Note: this patch depends on the following commits, which are currently in
linux-next but not yet in tiwai/sound:

* commit 664824782df6 ("ASoC: aw88399: skip BSTS check when boost
converter is bypassed")
* commit c5f615536405 ("ASoC: aw88399: remove bsts_unreliable
workaround")
* commit 7df0f9ee9c5a ("ALSA: hda: aw88399: Switch to use
acpi_bus_get_primary_device()")

The first two change the property table in aw88399_hda.c, simplifying
aw88399_apply_legion_quirks() to just aw88399_swap_channels(); the third
shifts by one the line count in aw88399_hda_acpi_probe().
Without these commits, this patch will not apply cleanly. Hence, for
simplicity, I based it on linux-next. I am happy to rebase on tiwai/sound
if preferred (after these changes are merged).

Best regards,
Marco

sound/hda/codecs/realtek/alc269.c | 2 ++
sound/hda/codecs/side-codecs/aw88399_hda.c | 2 ++
2 files changed, 4 insertions(+)

diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index fde109cf9163..3f3491ce7c5b 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -8483,6 +8483,8 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x3920, "Yoga S990-16 pro Quad VECO Quad", ALC287_FIXUP_YOGA9_SPEAKER2_TO_DAC1),
SND_PCI_QUIRK(0x17aa, 0x3929, "Thinkbook 13x Gen 5", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x392b, "Thinkbook 13x Gen 5", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
+ HDA_CODEC_QUIRK(0x17aa, 0x3934, "Legion R9000P AFR10", ALC287_FIXUP_LENOVO_LEGION_AW88399),
+ HDA_CODEC_QUIRK(0x17aa, 0x3935, "Legion R9000P AFR10", ALC287_FIXUP_LENOVO_LEGION_AW88399),
HDA_CODEC_QUIRK(0x17aa, 0x3936, "Legion R9000P ADR10H", ALC287_FIXUP_LENOVO_LEGION_AW88399),
HDA_CODEC_QUIRK(0x17aa, 0x3937, "Legion R9000P ADR10H", ALC287_FIXUP_LENOVO_LEGION_AW88399),
HDA_CODEC_QUIRK(0x17aa, 0x3938, "Legion Pro 7 16AFR10H", ALC287_FIXUP_LENOVO_LEGION_AW88399),
diff --git a/sound/hda/codecs/side-codecs/aw88399_hda.c b/sound/hda/codecs/side-codecs/aw88399_hda.c
index 9c6e01c29651..9ada8dfd51ce 100644
--- a/sound/hda/codecs/side-codecs/aw88399_hda.c
+++ b/sound/hda/codecs/side-codecs/aw88399_hda.c
@@ -164,6 +164,8 @@ static const struct aw88399_prop_model aw88399_prop_model_table[] = {
{ "17AA3907", aw88399_swap_channels },
{ "17AA3927", aw88399_swap_channels },
{ "17AA3928", aw88399_swap_channels },
+ { "17AA3934", aw88399_swap_channels },
+ { "17AA3935", aw88399_swap_channels },
{ "17AA3936", aw88399_swap_channels },
{ "17AA3937", aw88399_swap_channels },
{ "17AA3938", aw88399_swap_channels },

base-commit: aac26bee2287c88af5be5a5ff96d783b19a28790
--
2.56.0