[PATCH] ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14IRH8

Moritz Baron posted 1 patch 2 weeks, 2 days ago
There is a newer version of this series
sound/hda/codecs/realtek/alc269.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14IRH8
Posted by Moritz Baron 2 weeks, 2 days ago
The Lenovo Yoga Pro 7 14IRH8 (ALC287 codec, subsystem ID 0x17aa:0x38b1)
has bass speakers on pin 0x17 that are not routed through a DAC with
volume control. This causes the bass speakers to play at full volume
regardless of the volume slider position.

Apply ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN which corrects the DAC
routing for pin 0x17, enabling proper volume control. This is the same
fix used for other Yoga Pro 7 models with identical audio topology
(14APH8, 14AHP9, 14ASP10, 14IAH10).

Link: https://bugzilla.kernel.org/show_bug.cgi?id=217949

Co-developed-by: Felix Aljoscha Schnuell <felix.aljoscha.schnuell@stud.uni-hannover.de>
Signed-off-by: Felix Aljoscha Schnuell <felix.aljoscha.schnuell@stud.uni-hannover.de>
Signed-off-by: Moritz Baron <moritz.baron@stud.uni-hannover.de>
---
 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 dcbc669842e0..9b1e65f6d161 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -7711,6 +7711,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
 	 * use codec SSID to distinguish them
 	 */
 	HDA_CODEC_QUIRK(0x17aa, 0x38cf, "Lenovo Yoga Pro 7 14IMH9", ALC287_FIXUP_YOGA9_14IMH9_BASS_SPK_PIN),
+	HDA_CODEC_QUIRK(0x17aa, 0x38b1, "Lenovo Yoga Pro 7 14IRH8", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
 	SND_PCI_QUIRK(0x17aa, 0x3847, "Legion 7 16ACHG6", ALC287_FIXUP_LEGION_16ACHG6),
 	SND_PCI_QUIRK(0x17aa, 0x384a, "Lenovo Yoga 7 15ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
 	SND_PCI_QUIRK(0x17aa, 0x3852, "Lenovo Yoga 7 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
-- 
2.43.0
Re: [PATCH] ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14IRH8
Posted by Takashi Iwai 2 weeks, 1 day ago
On Mon, 08 Jun 2026 22:20:54 +0200,
Moritz Baron wrote:
> 
> The Lenovo Yoga Pro 7 14IRH8 (ALC287 codec, subsystem ID 0x17aa:0x38b1)
> has bass speakers on pin 0x17 that are not routed through a DAC with
> volume control. This causes the bass speakers to play at full volume
> regardless of the volume slider position.
> 
> Apply ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN which corrects the DAC
> routing for pin 0x17, enabling proper volume control. This is the same
> fix used for other Yoga Pro 7 models with identical audio topology
> (14APH8, 14AHP9, 14ASP10, 14IAH10).
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217949
> 
> Co-developed-by: Felix Aljoscha Schnuell <felix.aljoscha.schnuell@stud.uni-hannover.de>
> Signed-off-by: Felix Aljoscha Schnuell <felix.aljoscha.schnuell@stud.uni-hannover.de>
> Signed-off-by: Moritz Baron <moritz.baron@stud.uni-hannover.de>
> ---
>  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 dcbc669842e0..9b1e65f6d161 100644
> --- a/sound/hda/codecs/realtek/alc269.c
> +++ b/sound/hda/codecs/realtek/alc269.c
> @@ -7711,6 +7711,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
>  	 * use codec SSID to distinguish them
>  	 */
>  	HDA_CODEC_QUIRK(0x17aa, 0x38cf, "Lenovo Yoga Pro 7 14IMH9", ALC287_FIXUP_YOGA9_14IMH9_BASS_SPK_PIN),
> +	HDA_CODEC_QUIRK(0x17aa, 0x38b1, "Lenovo Yoga Pro 7 14IRH8", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),

Your machine seems to have a different PCI SSID (17aa:3852) from the
entry above, so it's not appropriate to put here.

Instead, put one before the entry of 17aa:3852 below, with a brief
comment that it's for avoiding the confliction with the PCI SSID
17aa:3852.

>  	SND_PCI_QUIRK(0x17aa, 0x3847, "Legion 7 16ACHG6", ALC287_FIXUP_LEGION_16ACHG6),
>  	SND_PCI_QUIRK(0x17aa, 0x384a, "Lenovo Yoga 7 15ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
>  	SND_PCI_QUIRK(0x17aa, 0x3852, "Lenovo Yoga 7 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),

... the conflicting entry is found here above.


thanks,

Takashi
[PATCH v2] ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14IRH8
Posted by Moritz Baron 2 weeks, 1 day ago
The Lenovo Yoga Pro 7 14IRH8 (ALC287 codec, subsystem ID 0x17aa:0x38b1)
has bass speakers on pin 0x17 that are not routed through a DAC with
volume control. This causes the bass speakers to play at full volume
regardless of the volume slider position.

Apply ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN which corrects the DAC
routing for pin 0x17, enabling proper volume control. This is the same
fix used for other Yoga Pro 7 models with identical audio topology
(14APH8, 14AHP9, 14ASP10, 14IAH10).

Link: https://bugzilla.kernel.org/show_bug.cgi?id=217949

Co-developed-by: Felix Aljoscha Schnuell <felix.aljoscha.schnuell@stud.uni-hannover.de>
Signed-off-by: Felix Aljoscha Schnuell <felix.aljoscha.schnuell@stud.uni-hannover.de>
Signed-off-by: Moritz Baron <moritz.baron@stud.uni-hannover.de>
---
v2: Move the quirk entry before 17aa:3852 and add a comment to
    clarify the PCI SSID conflict, as suggested by Takashi Iwai.

 sound/hda/codecs/realtek/alc269.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index dcbc669842e0..dbd562c7c626 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -7713,6 +7713,10 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
 	HDA_CODEC_QUIRK(0x17aa, 0x38cf, "Lenovo Yoga Pro 7 14IMH9", ALC287_FIXUP_YOGA9_14IMH9_BASS_SPK_PIN),
 	SND_PCI_QUIRK(0x17aa, 0x3847, "Legion 7 16ACHG6", ALC287_FIXUP_LEGION_16ACHG6),
 	SND_PCI_QUIRK(0x17aa, 0x384a, "Lenovo Yoga 7 15ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
+	/* Yoga Pro 7 14IRH8 shares PCI SSID 17aa:3852 with Yoga 7 14ITL5;
+	 * use codec SSID to distinguish them
+	 */
+	HDA_CODEC_QUIRK(0x17aa, 0x38b1, "Lenovo Yoga Pro 7 14IRH8", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
 	SND_PCI_QUIRK(0x17aa, 0x3852, "Lenovo Yoga 7 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
 	SND_PCI_QUIRK(0x17aa, 0x3853, "Lenovo Yoga 7 15ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
 	SND_PCI_QUIRK(0x17aa, 0x3855, "Legion 7 16ITHG6", ALC287_FIXUP_LEGION_16ITHG6),
-- 
2.43.0
Re: [PATCH v2] ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14IRH8
Posted by Takashi Iwai 2 weeks ago
On Tue, 09 Jun 2026 16:16:48 +0200,
Moritz Baron wrote:
> 
> The Lenovo Yoga Pro 7 14IRH8 (ALC287 codec, subsystem ID 0x17aa:0x38b1)
> has bass speakers on pin 0x17 that are not routed through a DAC with
> volume control. This causes the bass speakers to play at full volume
> regardless of the volume slider position.
> 
> Apply ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN which corrects the DAC
> routing for pin 0x17, enabling proper volume control. This is the same
> fix used for other Yoga Pro 7 models with identical audio topology
> (14APH8, 14AHP9, 14ASP10, 14IAH10).
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217949
> 
> Co-developed-by: Felix Aljoscha Schnuell <felix.aljoscha.schnuell@stud.uni-hannover.de>
> Signed-off-by: Felix Aljoscha Schnuell <felix.aljoscha.schnuell@stud.uni-hannover.de>
> Signed-off-by: Moritz Baron <moritz.baron@stud.uni-hannover.de>
> ---
> v2: Move the quirk entry before 17aa:3852 and add a comment to
>     clarify the PCI SSID conflict, as suggested by Takashi Iwai.

Applied to for-next branch now.  Thanks.


Takashi