public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ALSA: hda: intel-dsp-config: Force legacy HDA on Lenovo ThinkPad X1 Yoga Gen 5
@ 2026-04-04 14:47 Antti Jalomäki
  2026-04-04 15:21 ` Takashi Iwai
  0 siblings, 1 reply; 4+ messages in thread
From: Antti Jalomäki @ 2026-04-04 14:47 UTC (permalink / raw)
  To: linux-sound; +Cc: tiwai, perex, linux-kernel, antti

The SOF driver fails to initialize on the Lenovo ThinkPad X1 Yoga Gen 5
with Intel Comet Lake PCH-LP cAVS [8086:02c8]. Add a DMI quirk to force
legacy HDA driver selection for this device.

Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1120554
Link: https://bugzilla.redhat.com/show_bug.cgi?id=2455066
Signed-off-by: Antti Jalomäki <antti@nevaberry.com>
---
 sound/hda/core/intel-dsp-config.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/sound/hda/core/intel-dsp-config.c b/sound/hda/core/intel-dsp-config.c
index f0a44fd11..179fe4d59 100644
--- a/sound/hda/core/intel-dsp-config.c
+++ b/sound/hda/core/intel-dsp-config.c
@@ -269,6 +269,21 @@ static const struct config_entry config_table[] = {
 		.device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
 		.codec_hid =  &essx_83x6,
 	},
+	{
+		.flags = 0,
+		.device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
+		.dmi_table = (const struct dmi_system_id []) {
+			{
+				.ident = "Lenovo ThinkPad X1 Yoga Gen 5",
+				.matches = {
+					DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+					DMI_MATCH(DMI_PRODUCT_FAMILY,
+						  "ThinkPad X1 Yoga Gen 5"),
+				},
+			},
+			{}
+		}
+	},
 	{
 		.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE,
 		.device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,

base-commit: 9f2a23bd5d30dc0968e56a2b6e5edb58aff1bc6d
-- 
2.53.0


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

* Re: [PATCH] ALSA: hda: intel-dsp-config: Force legacy HDA on Lenovo ThinkPad X1 Yoga Gen 5
  2026-04-04 14:47 [PATCH] ALSA: hda: intel-dsp-config: Force legacy HDA on Lenovo ThinkPad X1 Yoga Gen 5 Antti Jalomäki
@ 2026-04-04 15:21 ` Takashi Iwai
  2026-04-04 15:46   ` Antti Jalomäki
  0 siblings, 1 reply; 4+ messages in thread
From: Takashi Iwai @ 2026-04-04 15:21 UTC (permalink / raw)
  To: Antti Jalomäki; +Cc: linux-sound, tiwai, perex, linux-kernel

On Sat, 04 Apr 2026 16:47:43 +0200,
Antti Jalomäki wrote:
> 
> The SOF driver fails to initialize on the Lenovo ThinkPad X1 Yoga Gen 5
> with Intel Comet Lake PCH-LP cAVS [8086:02c8]. Add a DMI quirk to force
> legacy HDA driver selection for this device.
> 
> Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1120554
> Link: https://bugzilla.redhat.com/show_bug.cgi?id=2455066
> Signed-off-by: Antti Jalomäki <antti@nevaberry.com>

Have you tested with the latest kernel together with the latest
SOF-firmware?  Just to be sure, as your reports above didn't indicate
it, and ....

> ---
>  sound/hda/core/intel-dsp-config.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/sound/hda/core/intel-dsp-config.c b/sound/hda/core/intel-dsp-config.c
> index f0a44fd11..179fe4d59 100644
> --- a/sound/hda/core/intel-dsp-config.c
> +++ b/sound/hda/core/intel-dsp-config.c
> @@ -269,6 +269,21 @@ static const struct config_entry config_table[] = {
>  		.device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
>  		.codec_hid =  &essx_83x6,
>  	},
> +	{
> +		.flags = 0,

... there is no other quirk entries setting like this.  It already
looks very special, and such a case is often due to other problems.


thanks,

Takashi

> +		.device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
> +		.dmi_table = (const struct dmi_system_id []) {
> +			{
> +				.ident = "Lenovo ThinkPad X1 Yoga Gen 5",
> +				.matches = {
> +					DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> +					DMI_MATCH(DMI_PRODUCT_FAMILY,
> +						  "ThinkPad X1 Yoga Gen 5"),
> +				},
> +			},
> +			{}
> +		}
> +	},
>  	{
>  		.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE,
>  		.device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
> 
> base-commit: 9f2a23bd5d30dc0968e56a2b6e5edb58aff1bc6d
> -- 
> 2.53.0
> 

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

* Re: [PATCH] ALSA: hda: intel-dsp-config: Force legacy HDA on Lenovo ThinkPad X1 Yoga Gen 5
  2026-04-04 15:21 ` Takashi Iwai
@ 2026-04-04 15:46   ` Antti Jalomäki
  2026-04-04 15:52     ` Takashi Iwai
  0 siblings, 1 reply; 4+ messages in thread
From: Antti Jalomäki @ 2026-04-04 15:46 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Antti Jalomäki, linux-sound, tiwai, perex, linux-kernel

Hi Takashi,

Thank you for the review. I re-tested without the workaround on kernel
6.19.10 (Fedora 43) with the latest SOF firmware available
(alsa-sof-firmware 2025.12.2, firmware
version 2:2:0-57864, ABI 3:22:1).

The SOF driver detects 4 DMICs in NHLT tables and attempts to load,
but fails with a CSE IPC timeout. Full dmesg:

sof-audio-pci-intel-cnl 0000:00:1f.3: Digital mics found on Skylake+
platform, using SOF driver
sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI
class/subclass/prog-if 0x040380
sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 5
sof-audio-pci-intel-cnl 0000:00:1f.3: using HDA machine driver
skl_hda_dsp_generic now
sof-audio-pci-intel-cnl 0000:00:1f.3: DMICs detected in NHLT tables: 4
sof-audio-pci-intel-cnl 0000:00:1f.3:  Firmware file:     intel/sof/sof-cml.ri
sof-audio-pci-intel-cnl 0000:00:1f.3:  Topology file:
intel/sof-tplg/sof-hda-generic-4ch.tplg
sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864
sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:1
sof-audio-pci-intel-cnl 0000:00:1f.3: cl_dsp_init: timeout with
rom_status_reg (0x80000) read
sof-audio-pci-intel-cnl 0000:00:1f.3: Boot iteration failed: 3/3
sof-audio-pci-intel-cnl 0000:00:1f.3: 0x06000021: module: ROM, state:
CSE_IPC_RESET_PHASE_1, waiting for: CSE_CSR, running
sof-audio-pci-intel-cnl 0000:00:1f.3: extended rom status:  0x6000021
0x0 0x0 0x0 0x0 0x0 0x1811102 0x0
sof-audio-pci-intel-cnl 0000:00:1f.3: error: dsp init failed after 3
attempts with err: -110
sof-audio-pci-intel-cnl 0000:00:1f.3: error: hda_dsp_core_reset_enter:
timeout on HDA_DSP_REG_ADSPCS read
sof-audio-pci-intel-cnl 0000:00:1f.3: error: dsp core reset failed: core_mask f
sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof_probe_work failed err: -110

The DSP gets stuck at CSE_IPC_RESET_PHASE_1, waiting for CSE_CSR. This
appears to be a communication failure between the SOF driver and the
Intel CSE, not a firmware
version issue.

With snd_intel_dspcfg.dsp_driver=1, the legacy HDA driver works
correctly (ALC285 codec, PCI SSID 17aa:22be).

System info:
- Lenovo ThinkPad X1 Yoga Gen 5 (20UBCTO1WW)
- BIOS: N2WET51W (1.41)
- PCI: Intel Comet Lake PCH-LP cAVS [8086:02c8]
- Kernel: 6.19.10-200.fc43.x86_64
- SOF firmware: alsa-sof-firmware-2025.12.2

I'm happy to adjust the patch approach if you suggest a better way to
handle this. Would using FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE with a
different fallback be preferred
over .flags = 0?

Best regards,
Antti Jalomäki

On Sat, Apr 4, 2026 at 6:21 PM Takashi Iwai <tiwai@suse.de> wrote:
>
> On Sat, 04 Apr 2026 16:47:43 +0200,
> Antti Jalomäki wrote:
> >
> > The SOF driver fails to initialize on the Lenovo ThinkPad X1 Yoga Gen 5
> > with Intel Comet Lake PCH-LP cAVS [8086:02c8]. Add a DMI quirk to force
> > legacy HDA driver selection for this device.
> >
> > Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1120554
> > Link: https://bugzilla.redhat.com/show_bug.cgi?id=2455066
> > Signed-off-by: Antti Jalomäki <antti@nevaberry.com>
>
> Have you tested with the latest kernel together with the latest
> SOF-firmware?  Just to be sure, as your reports above didn't indicate
> it, and ....
>
> > ---
> >  sound/hda/core/intel-dsp-config.c | 15 +++++++++++++++
> >  1 file changed, 15 insertions(+)
> >
> > diff --git a/sound/hda/core/intel-dsp-config.c b/sound/hda/core/intel-dsp-config.c
> > index f0a44fd11..179fe4d59 100644
> > --- a/sound/hda/core/intel-dsp-config.c
> > +++ b/sound/hda/core/intel-dsp-config.c
> > @@ -269,6 +269,21 @@ static const struct config_entry config_table[] = {
> >               .device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
> >               .codec_hid =  &essx_83x6,
> >       },
> > +     {
> > +             .flags = 0,
>
> ... there is no other quirk entries setting like this.  It already
> looks very special, and such a case is often due to other problems.
>
>
> thanks,
>
> Takashi
>
> > +             .device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
> > +             .dmi_table = (const struct dmi_system_id []) {
> > +                     {
> > +                             .ident = "Lenovo ThinkPad X1 Yoga Gen 5",
> > +                             .matches = {
> > +                                     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> > +                                     DMI_MATCH(DMI_PRODUCT_FAMILY,
> > +                                               "ThinkPad X1 Yoga Gen 5"),
> > +                             },
> > +                     },
> > +                     {}
> > +             }
> > +     },
> >       {
> >               .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE,
> >               .device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
> >
> > base-commit: 9f2a23bd5d30dc0968e56a2b6e5edb58aff1bc6d
> > --
> > 2.53.0
> >

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

* Re: [PATCH] ALSA: hda: intel-dsp-config: Force legacy HDA on Lenovo ThinkPad X1 Yoga Gen 5
  2026-04-04 15:46   ` Antti Jalomäki
@ 2026-04-04 15:52     ` Takashi Iwai
  0 siblings, 0 replies; 4+ messages in thread
From: Takashi Iwai @ 2026-04-04 15:52 UTC (permalink / raw)
  To: Antti Jalomäki
  Cc: Takashi Iwai, linux-sound, tiwai, perex, linux-kernel,
	Peter Ujfalusi, Bard Liao, Ranjani Sridharan, Kai Vehmanen

On Sat, 04 Apr 2026 17:46:08 +0200,
Antti Jalomäki wrote:
> 
> Hi Takashi,
> 
> Thank you for the review. I re-tested without the workaround on kernel
> 6.19.10 (Fedora 43) with the latest SOF firmware available
> (alsa-sof-firmware 2025.12.2, firmware
> version 2:2:0-57864, ABI 3:22:1).
> 
> The SOF driver detects 4 DMICs in NHLT tables and attempts to load,
> but fails with a CSE IPC timeout. Full dmesg:
> 
> sof-audio-pci-intel-cnl 0000:00:1f.3: Digital mics found on Skylake+
> platform, using SOF driver
> sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI
> class/subclass/prog-if 0x040380
> sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 5
> sof-audio-pci-intel-cnl 0000:00:1f.3: using HDA machine driver
> skl_hda_dsp_generic now
> sof-audio-pci-intel-cnl 0000:00:1f.3: DMICs detected in NHLT tables: 4
> sof-audio-pci-intel-cnl 0000:00:1f.3:  Firmware file:     intel/sof/sof-cml.ri
> sof-audio-pci-intel-cnl 0000:00:1f.3:  Topology file:
> intel/sof-tplg/sof-hda-generic-4ch.tplg
> sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864
> sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:1
> sof-audio-pci-intel-cnl 0000:00:1f.3: cl_dsp_init: timeout with
> rom_status_reg (0x80000) read
> sof-audio-pci-intel-cnl 0000:00:1f.3: Boot iteration failed: 3/3
> sof-audio-pci-intel-cnl 0000:00:1f.3: 0x06000021: module: ROM, state:
> CSE_IPC_RESET_PHASE_1, waiting for: CSE_CSR, running
> sof-audio-pci-intel-cnl 0000:00:1f.3: extended rom status:  0x6000021
> 0x0 0x0 0x0 0x0 0x0 0x1811102 0x0
> sof-audio-pci-intel-cnl 0000:00:1f.3: error: dsp init failed after 3
> attempts with err: -110
> sof-audio-pci-intel-cnl 0000:00:1f.3: error: hda_dsp_core_reset_enter:
> timeout on HDA_DSP_REG_ADSPCS read
> sof-audio-pci-intel-cnl 0000:00:1f.3: error: dsp core reset failed: core_mask f
> sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof_probe_work failed err: -110
> 
> The DSP gets stuck at CSE_IPC_RESET_PHASE_1, waiting for CSE_CSR. This
> appears to be a communication failure between the SOF driver and the
> Intel CSE, not a firmware
> version issue.
> 
> With snd_intel_dspcfg.dsp_driver=1, the legacy HDA driver works
> correctly (ALC285 codec, PCI SSID 17aa:22be).
> 
> System info:
> - Lenovo ThinkPad X1 Yoga Gen 5 (20UBCTO1WW)
> - BIOS: N2WET51W (1.41)
> - PCI: Intel Comet Lake PCH-LP cAVS [8086:02c8]
> - Kernel: 6.19.10-200.fc43.x86_64
> - SOF firmware: alsa-sof-firmware-2025.12.2
> 
> I'm happy to adjust the patch approach if you suggest a better way to
> handle this. Would using FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE with a
> different fallback be preferred
> over .flags = 0?

Let Intel folks check the error above at first (added a few to Cc).
If it's really a device that shouldn't be dealt with SOF, we can add a
quirk entry.


thanks,

Takashi

> 
> Best regards,
> Antti Jalomäki
> 
> On Sat, Apr 4, 2026 at 6:21 PM Takashi Iwai <tiwai@suse.de> wrote:
> >
> > On Sat, 04 Apr 2026 16:47:43 +0200,
> > Antti Jalomäki wrote:
> > >
> > > The SOF driver fails to initialize on the Lenovo ThinkPad X1 Yoga Gen 5
> > > with Intel Comet Lake PCH-LP cAVS [8086:02c8]. Add a DMI quirk to force
> > > legacy HDA driver selection for this device.
> > >
> > > Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1120554
> > > Link: https://bugzilla.redhat.com/show_bug.cgi?id=2455066
> > > Signed-off-by: Antti Jalomäki <antti@nevaberry.com>
> >
> > Have you tested with the latest kernel together with the latest
> > SOF-firmware?  Just to be sure, as your reports above didn't indicate
> > it, and ....
> >
> > > ---
> > >  sound/hda/core/intel-dsp-config.c | 15 +++++++++++++++
> > >  1 file changed, 15 insertions(+)
> > >
> > > diff --git a/sound/hda/core/intel-dsp-config.c b/sound/hda/core/intel-dsp-config.c
> > > index f0a44fd11..179fe4d59 100644
> > > --- a/sound/hda/core/intel-dsp-config.c
> > > +++ b/sound/hda/core/intel-dsp-config.c
> > > @@ -269,6 +269,21 @@ static const struct config_entry config_table[] = {
> > >               .device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
> > >               .codec_hid =  &essx_83x6,
> > >       },
> > > +     {
> > > +             .flags = 0,
> >
> > ... there is no other quirk entries setting like this.  It already
> > looks very special, and such a case is often due to other problems.
> >
> >
> > thanks,
> >
> > Takashi
> >
> > > +             .device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
> > > +             .dmi_table = (const struct dmi_system_id []) {
> > > +                     {
> > > +                             .ident = "Lenovo ThinkPad X1 Yoga Gen 5",
> > > +                             .matches = {
> > > +                                     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> > > +                                     DMI_MATCH(DMI_PRODUCT_FAMILY,
> > > +                                               "ThinkPad X1 Yoga Gen 5"),
> > > +                             },
> > > +                     },
> > > +                     {}
> > > +             }
> > > +     },
> > >       {
> > >               .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE,
> > >               .device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
> > >
> > > base-commit: 9f2a23bd5d30dc0968e56a2b6e5edb58aff1bc6d
> > > --
> > > 2.53.0
> > >

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

end of thread, other threads:[~2026-04-04 15:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-04 14:47 [PATCH] ALSA: hda: intel-dsp-config: Force legacy HDA on Lenovo ThinkPad X1 Yoga Gen 5 Antti Jalomäki
2026-04-04 15:21 ` Takashi Iwai
2026-04-04 15:46   ` Antti Jalomäki
2026-04-04 15:52     ` Takashi Iwai

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