[BUG] Sound devices not detected by sof-audio-pci-intel-mtl after 6.15->6.16 Linux kernel upgrade
Symptom Sound devices are partially detected but not functional after 6.15->6.16 kernel upgrade for the following hardware.
Reproducibility This is reproducible at every boot.
Expected It was working perfectly fine on 6.15 kernel (up to 6.15.9, when I transitioned to 6.16).
Impact Neither the mic nor the speakers are available due to this bug, so it's critical.
Environment
- Branch name and commit hash of the 2 repositories: sof (firmware/topology) and linux (kernel driver).
- Kernel: 6.16.4-arch1-1
- SOF: 2025.05.1-1 (2.13.1)
- Name of the topology file
- Topology: intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l23.tplg
- Name of the platform(s) on which the bug is observed.
- Platform: Dell XPS 14 9440
00:1f.3 Multimedia audio controller: Intel Corporation Meteor Lake-P HD Audio Controller (rev 20)
- Platform: Dell XPS 14 9440
Screenshots or console output There is no error per se but a difference in the output between kernel 6.15 and 6.16, as follows:
Kernel 6.15
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: enabling device (0000 -> 0002)
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 4
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 0
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware paths/files for ipc type 1:
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/mtl
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l23.tplg
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.13.0.1
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.13.0.1
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
Kernel 6.16
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: enabling device (0000 -> 0002)
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 4
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 0
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware paths/files for ipc type 1:
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/mtl
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l23.tplg
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.13.0.1
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.13.0.1
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Using function topologies instead intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l23.tplg
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: loading topology 0: intel/sof-ace-tplg/sof-sdca-mic-id4.tplg
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: loading topology 1: intel/sof-ace-tplg/sof-sdca-2amp-id2.tplg
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: loading topology 2: intel/sof-ace-tplg/sof-hdmi-pcm5-id5.tplg
kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
adding @ujfalusi and @bardliao
@bnicolae It looks like the same issue as https://github.com/thesofproject/linux/issues/5515.
You could try https://github.com/thesofproject/linux/issues/5515#issuecomment-3210938148
Or just set options snd_sof disable_function_topology=1
I applied the fix of https://github.com/thesofproject/linux/issues/5515#issuecomment-3210938148 and the audio devices (speakers and mic) are recognized again.
Dell XPS 9640, Kernel 6.16.4, Arch Linux, same audio controller as OP, with same scenario as OP
So I guess this is indeed a duplicate of #5515
Confirmed, the proposed fix indeed works. This issue can be closed
While waiting for the #5515 patch to make it, I tried adding snd_sof.disable_function_topology=1 to the kernel cmdline as instructed, but this doesn't work. Here's the output:
[ 16.096998] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[ 16.097054] sof-audio-pci-intel-mtl 0000:00:1f.3: error: can't connect DAI alh-copier.Playback-SimpleJack.0 stream Playback-SimpleJack
[ 16.097444] sof-audio-pci-intel-mtl 0000:00:1f.3: failed to add widget type 27 name : alh-copier.Playback-SimpleJack.0 stream Playback-SimpleJack
[ 16.097777] sof_sdw sof_sdw: ASoC: failed to load widget alh-copier.Playback-SimpleJack.0
[ 16.098052] sof_sdw sof_sdw: ASoC: topology: could not load header: -22
[ 16.098357] sof-audio-pci-intel-mtl 0000:00:1f.3: tplg intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l23.tplg component load failed -22
[ 16.098671] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to load DSP topology -22
[ 16.098893] sof-audio-pci-intel-mtl 0000:00:1f.3: ASoC error (-22): at snd_soc_component_probe() on 0000:00:1f.3
[ 16.099144] sof_sdw sof_sdw: ASoC: failed to instantiate card -22
[ 16.099911] sof_sdw sof_sdw: error -EINVAL: snd_soc_register_card failed -22
[ 16.100154] sof_sdw sof_sdw: probe with driver sof_sdw failed with error -22
@bnicolae Please rename sof-dyndbg.conf.txt to sof-dyndbg.conf and put it in the /etc/modprobe.d/ folder and share the full dmesg log after reboot, thanks
@bardliao here you go. Note that I added "options snd_sof disable_function_topology=1" to the config file.
[ 16.657696] snd_soc_sdw_utils:is_sdca_endpoint_present: cs42l43 sdw:0:0:01fa:4243:01: SDCA device function for DAI type 0 not supported, skip endpoint
[ 16.657698] snd_soc_sdw_utils:is_sdca_endpoint_present: cs42l43 sdw:0:0:01fa:4243:01: SDCA device function for DAI type 1 not supported, skip endpoint
That will prevent the dai link from creating. That's why even you set snd_sof.disable_function_topology=1 and use the sof-mtl-cs42l43-l0-cs35l56-l23.tplg topology you will still meet issues.
Thanks! What can we conclude from this observation? Wait for the kernel patch to make it (and keep using 6.15 in the mean time)?
@bnicolae You can wait or you could cherry pick https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?id=28edfaa10ca1b370b1a27fde632000d35c43402c to your kernel.