Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH] ALSA:hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio
@ 2026-05-13  9:12 Jackie Dong
  2026-05-13  9:26 ` Eric Naim
  0 siblings, 1 reply; 3+ messages in thread
From: Jackie Dong @ 2026-05-13  9:12 UTC (permalink / raw)
  To: perex, tiwai, sbinding, zhangheng, kailang, edip
  Cc: linux-sound, linux-kernel, Jackie Dong

ALSA:hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio

The amp/speakers on the Lenovo Yoga Pro 7 15ASH11 laptop aren't be
adjusted by Speaker Volume. Reuse the DAC routing selected for ThinkPad
X1 Gen7 function to fix it.

Signed-off-by: Jackie Dong <xy-jackie@139.com>
---
 sound/hda/codecs/realtek/alc269.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index 11d0ea8ed859..84aa1d4e7410 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -4076,6 +4076,7 @@ enum {
 	ALC287_FIXUP_YOGA7_14ITL_SPEAKERS,
 	ALC298_FIXUP_LENOVO_C940_DUET7,
 	ALC287_FIXUP_LENOVO_YOGA_BOOK_9I,
+	ALC287_FIXUP_LENOVO_YOGA_PRO7,
 	ALC287_FIXUP_13S_GEN2_SPEAKERS,
 	ALC256_FIXUP_SET_COEF_DEFAULTS,
 	ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
@@ -6100,6 +6101,11 @@ static const struct hda_fixup alc269_fixups[] = {
 		.chained = true,
 		.chain_id = ALC285_FIXUP_THINKPAD_HEADSET_JACK,
 	},
+	[ALC287_FIXUP_LENOVO_YOGA_PRO7] = {
+		.type = HDA_FIXUP_FUNC,
+		/* Reuse the DAC routing selected for ThinkPad X1 Gen7 */
+		.v.func = alc285_fixup_thinkpad_x1_gen7,
+	},
 	[ALC623_FIXUP_LENOVO_THINKSTATION_P340] = {
 		.type = HDA_FIXUP_FUNC,
 		.v.func = alc_fixup_no_shutup,
@@ -7752,6 +7758,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x17aa, 0x38df, "Y990 YG DUAL", ALC287_FIXUP_TAS2781_I2C),
 	SND_PCI_QUIRK(0x17aa, 0x38f9, "Thinkbook 16P Gen5", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
 	SND_PCI_QUIRK(0x17aa, 0x38fa, "Thinkbook 16P Gen5", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
+	SND_PCI_QUIRK(0x17aa, 0x38fc, "Lenovo Yoga Pro 7 15ASH11", ALC287_FIXUP_LENOVO_YOGA_PRO7),
 	SND_PCI_QUIRK(0x17aa, 0x38fd, "ThinkBook plus Gen5 Hybrid", ALC287_FIXUP_TAS2781_I2C),
 	SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
 	SND_PCI_QUIRK(0x17aa, 0x390d, "Lenovo Yoga Pro 7 14ASP10", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
@@ -8043,6 +8050,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
 	{.id = ALC285_FIXUP_HP_SPECTRE_X360_DF1, .name = "alc285-hp-spectre-x360-df1"},
 	{.id = ALC285_FIXUP_HP_ENVY_X360, .name = "alc285-hp-envy-x360"},
 	{.id = ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name = "alc287-ideapad-bass-spk-amp"},
+	{.id = ALC287_FIXUP_LENOVO_YOGA_PRO7, .name = "alc287-lenovo-yoga-pro7"},
 	{.id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, .name = "alc287-yoga9-bass-spk-pin"},
 	{.id = ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name = "alc623-lenovo-thinkstation-p340"},
 	{.id = ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, .name = "alc255-acer-headphone-and-mic"},
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] ALSA:hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio
  2026-05-13  9:12 [PATCH] ALSA:hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio Jackie Dong
@ 2026-05-13  9:26 ` Eric Naim
  2026-05-14 15:13   ` Jackie Dong
  0 siblings, 1 reply; 3+ messages in thread
From: Eric Naim @ 2026-05-13  9:26 UTC (permalink / raw)
  To: Jackie Dong, perex, tiwai, sbinding, zhangheng, kailang, edip
  Cc: linux-sound, linux-kernel

On 5/13/26 5:12 PM, Jackie Dong wrote:
> ALSA:hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio
> 
> The amp/speakers on the Lenovo Yoga Pro 7 15ASH11 laptop aren't be
> adjusted by Speaker Volume. Reuse the DAC routing selected for ThinkPad
> X1 Gen7 function to fix it.
> 
> Signed-off-by: Jackie Dong <xy-jackie@139.com>
> ---
>  sound/hda/codecs/realtek/alc269.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
> index 11d0ea8ed859..84aa1d4e7410 100644
> --- a/sound/hda/codecs/realtek/alc269.c
> +++ b/sound/hda/codecs/realtek/alc269.c
> @@ -4076,6 +4076,7 @@ enum {
>  	ALC287_FIXUP_YOGA7_14ITL_SPEAKERS,
>  	ALC298_FIXUP_LENOVO_C940_DUET7,
>  	ALC287_FIXUP_LENOVO_YOGA_BOOK_9I,
> +	ALC287_FIXUP_LENOVO_YOGA_PRO7,
>  	ALC287_FIXUP_13S_GEN2_SPEAKERS,
>  	ALC256_FIXUP_SET_COEF_DEFAULTS,
>  	ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
> @@ -6100,6 +6101,11 @@ static const struct hda_fixup alc269_fixups[] = {
>  		.chained = true,
>  		.chain_id = ALC285_FIXUP_THINKPAD_HEADSET_JACK,
>  	},
> +	[ALC287_FIXUP_LENOVO_YOGA_PRO7] = {
> +		.type = HDA_FIXUP_FUNC,
> +		/* Reuse the DAC routing selected for ThinkPad X1 Gen7 */
> +		.v.func = alc285_fixup_thinkpad_x1_gen7,
> +	},

Hi Jackie, an identical quirk exists for this. See ALC245_FIXUP_BASS_HP_DAC. I
think you should use that instead of creating a new quirk that is identical.

>  	[ALC623_FIXUP_LENOVO_THINKSTATION_P340] = {
>  		.type = HDA_FIXUP_FUNC,
>  		.v.func = alc_fixup_no_shutup,
> @@ -7752,6 +7758,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
>  	SND_PCI_QUIRK(0x17aa, 0x38df, "Y990 YG DUAL", ALC287_FIXUP_TAS2781_I2C),
>  	SND_PCI_QUIRK(0x17aa, 0x38f9, "Thinkbook 16P Gen5", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
>  	SND_PCI_QUIRK(0x17aa, 0x38fa, "Thinkbook 16P Gen5", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
> +	SND_PCI_QUIRK(0x17aa, 0x38fc, "Lenovo Yoga Pro 7 15ASH11", ALC287_FIXUP_LENOVO_YOGA_PRO7),
>  	SND_PCI_QUIRK(0x17aa, 0x38fd, "ThinkBook plus Gen5 Hybrid", ALC287_FIXUP_TAS2781_I2C),
>  	SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
>  	SND_PCI_QUIRK(0x17aa, 0x390d, "Lenovo Yoga Pro 7 14ASP10", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
> @@ -8043,6 +8050,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
>  	{.id = ALC285_FIXUP_HP_SPECTRE_X360_DF1, .name = "alc285-hp-spectre-x360-df1"},
>  	{.id = ALC285_FIXUP_HP_ENVY_X360, .name = "alc285-hp-envy-x360"},
>  	{.id = ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name = "alc287-ideapad-bass-spk-amp"},
> +	{.id = ALC287_FIXUP_LENOVO_YOGA_PRO7, .name = "alc287-lenovo-yoga-pro7"},
>  	{.id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, .name = "alc287-yoga9-bass-spk-pin"},
>  	{.id = ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name = "alc623-lenovo-thinkstation-p340"},
>  	{.id = ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, .name = "alc255-acer-headphone-and-mic"},


-- 
Regards,
  Eric

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] ALSA:hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio
  2026-05-13  9:26 ` Eric Naim
@ 2026-05-14 15:13   ` Jackie Dong
  0 siblings, 0 replies; 3+ messages in thread
From: Jackie Dong @ 2026-05-14 15:13 UTC (permalink / raw)
  To: Eric Naim, perex, tiwai, sbinding, zhangheng, kailang, edip,
	mpearson-lenovo
  Cc: linux-sound, linux-kernel

On Wed, 2026-05-13 at 09:26 +0000, Eric Naim wrote:
> On 5/13/26 5:12 PM, Jackie Dong wrote:
> > ALSA:hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio
> > 
> > The amp/speakers on the Lenovo Yoga Pro 7 15ASH11 laptop aren't be
> > adjusted by Speaker Volume. Reuse the DAC routing selected for
> > ThinkPad
> > X1 Gen7 function to fix it.
> > 
> > Signed-off-by: Jackie Dong <xy-jackie@139.com>
> > ---
> >  sound/hda/codecs/realtek/alc269.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/sound/hda/codecs/realtek/alc269.c
> > b/sound/hda/codecs/realtek/alc269.c
> > index 11d0ea8ed859..84aa1d4e7410 100644
> > --- a/sound/hda/codecs/realtek/alc269.c
> > +++ b/sound/hda/codecs/realtek/alc269.c
> > @@ -4076,6 +4076,7 @@ enum {
> >  	ALC287_FIXUP_YOGA7_14ITL_SPEAKERS,
> >  	ALC298_FIXUP_LENOVO_C940_DUET7,
> >  	ALC287_FIXUP_LENOVO_YOGA_BOOK_9I,
> > +	ALC287_FIXUP_LENOVO_YOGA_PRO7,
> >  	ALC287_FIXUP_13S_GEN2_SPEAKERS,
> >  	ALC256_FIXUP_SET_COEF_DEFAULTS,
> >  	ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
> > @@ -6100,6 +6101,11 @@ static const struct hda_fixup
> > alc269_fixups[] = {
> >  		.chained = true,
> >  		.chain_id = ALC285_FIXUP_THINKPAD_HEADSET_JACK,
> >  	},
> > +	[ALC287_FIXUP_LENOVO_YOGA_PRO7] = {
> > +		.type = HDA_FIXUP_FUNC,
> > +		/* Reuse the DAC routing selected for ThinkPad X1
> > Gen7 */
> > +		.v.func = alc285_fixup_thinkpad_x1_gen7,
> > +	},
> 
> Hi Jackie, an identical quirk exists for this. See
> ALC245_FIXUP_BASS_HP_DAC. I
> think you should use that instead of creating a new quirk that is
> identical.
> 
> >  	[ALC623_FIXUP_LENOVO_THINKSTATION_P340] = {
> >  		.type = HDA_FIXUP_FUNC,
> >  		.v.func = alc_fixup_no_shutup,
> > @@ -7752,6 +7758,7 @@ static const struct hda_quirk
> > alc269_fixup_tbl[] = {
> >  	SND_PCI_QUIRK(0x17aa, 0x38df, "Y990 YG DUAL",
> > ALC287_FIXUP_TAS2781_I2C),
> >  	SND_PCI_QUIRK(0x17aa, 0x38f9, "Thinkbook 16P Gen5",
> > ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
> >  	SND_PCI_QUIRK(0x17aa, 0x38fa, "Thinkbook 16P Gen5",
> > ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
> > +	SND_PCI_QUIRK(0x17aa, 0x38fc, "Lenovo Yoga Pro 7 15ASH11",
> > ALC287_FIXUP_LENOVO_YOGA_PRO7),
> >  	SND_PCI_QUIRK(0x17aa, 0x38fd, "ThinkBook plus Gen5
> > Hybrid", ALC287_FIXUP_TAS2781_I2C),
> >  	SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80",
> > ALC269_FIXUP_DMIC_THINKPAD_ACPI),
> >  	SND_PCI_QUIRK(0x17aa, 0x390d, "Lenovo Yoga Pro 7 14ASP10",
> > ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
> > @@ -8043,6 +8050,7 @@ static const struct hda_model_fixup
> > alc269_fixup_models[] = {
> >  	{.id = ALC285_FIXUP_HP_SPECTRE_X360_DF1, .name = "alc285-
> > hp-spectre-x360-df1"},
> >  	{.id = ALC285_FIXUP_HP_ENVY_X360, .name = "alc285-hp-envy-
> > x360"},
> >  	{.id = ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name = "alc287-
> > ideapad-bass-spk-amp"},
> > +	{.id = ALC287_FIXUP_LENOVO_YOGA_PRO7, .name = "alc287-
> > lenovo-yoga-pro7"},
> >  	{.id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, .name =
> > "alc287-yoga9-bass-spk-pin"},
> >  	{.id = ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name =
> > "alc623-lenovo-thinkstation-p340"},
> >  	{.id = ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, .name =
> > "alc255-acer-headphone-and-mic"},
> 
> 
Hi Eric,
  In fact, I find the codec name is  ALC287 series on Yoga Pro 7
15ASH11 at first.
  I have reviewed the alc269.c again and agree your suggestion, will upstream
the patch V2 with ALC245_FIXUP_BASS_HP_DAC instead of creating a new
quirk.
  Thanks, 



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-05-14 15:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-13  9:12 [PATCH] ALSA:hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio Jackie Dong
2026-05-13  9:26 ` Eric Naim
2026-05-14 15:13   ` Jackie Dong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox