linux icon indicating copy to clipboard operation
linux copied to clipboard

[BUG] Sound devices not detected by sof-audio-pci-intel-mtl after 6.15->6.16 Linux kernel upgrade

Open bnicolae opened this issue 4 months ago • 10 comments

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

  1. 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)
  2. Name of the topology file
    • Topology: intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l23.tplg
  3. 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)

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

bnicolae avatar Aug 26 '25 17:08 bnicolae

adding @ujfalusi and @bardliao

lgirdwood avatar Aug 27 '25 15:08 lgirdwood

@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

bardliao avatar Aug 28 '25 01:08 bardliao

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

veger avatar Sep 03 '25 15:09 veger

Confirmed, the proposed fix indeed works. This issue can be closed

bnicolae avatar Sep 03 '25 22:09 bnicolae

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 avatar Sep 04 '25 16:09 bnicolae

@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 avatar Sep 05 '25 01:09 bardliao

@bardliao here you go. Note that I added "options snd_sof disable_function_topology=1" to the config file.

kernel-log.txt

bnicolae avatar Sep 09 '25 23:09 bnicolae

[   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.

bardliao avatar Sep 10 '25 01:09 bardliao

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 avatar Sep 10 '25 16:09 bnicolae

@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.

bardliao avatar Sep 11 '25 12:09 bardliao