Repository navigation
Description
Describe the bug
The audio driver fails to load with an error that the firmware/topology (intel/sof-ipc4/mtl/sof-mtl.ri and intel/sof-ace-tplg/sof-mtl-rt711.tplg) files were not found.
Attempts to fix where to extract the zst file sof-mtl.ri of the same name and the similarly named sof-mtl-rt711-4ch.tplg.zst, the driver loaded but resulted in the error below.
To Reproduce
- Boot Ubuntu 24.04 (20240319) on a Dell XPS 16 2024 (9640)
dmesgto show error
Reproduction Rate
100% on boot
Expected behavior
The sound card is detected
Impact
No audio via built-in speakers
Environment
- Branch name and commit hash of the 2 repositories: sof (firmware/topology) and linux (kernel driver).
- Kernel: Linux 6.8.0-11-generic x86_64 / Ubuntu 6.8.0-11.11-generic 6.8.0-rc4
- SOF: TBD
- Name of the topology file
- Topology: sof-mtl-rt711.tplg
- Name of the platform(s) on which the bug is observed.
- Platform: Dell XPS 16 2024 (9640)
Screenshots or console output
# dmesg
sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 0
sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 4
sof-audio-pci-intel-mtl 0000:00:1f.3: SOF firmware and/or topology file not found.
sof-audio-pci-intel-mtl 0000:00:1f.3: Supported default profiles
sof-audio-pci-intel-mtl 0000:00:1f.3: - ipc type 1 (Requested):
sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-mtl-rt711.tplg
sof-audio-pci-intel-mtl 0000:00:1f.3: Check if you have 'sof-firmware' package installed.
sof-audio-pci-intel-mtl 0000:00:1f.3: Optionally it can be manually downloaded from:
sof-audio-pci-intel-mtl 0000:00:1f.3: https://github.com/thesofproject/sof-bin/
sof-audio-pci-intel-mtl 0000:00:1f.3: error: sof_probe_work failed err: -2
After extracting the intel/sof-ipc4/mtl/sof-mtl.ri.zst and intel/sof-ace-tplg/sof-mtl-rt711-4ch.tplg.zst and placing them in the same folder, the following dmesg output is created:
# dmesg
snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
snd_hda_intel 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
sof-audio-pci-intel-mtl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380
sof-audio-pci-intel-mtl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 0
sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 4
sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware paths/files for ipc type 1:
sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/mtl
sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-mtl-rt711.tplg
sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.8.1.1
cs42l43 sdw:0:0:01fa:4243:01: supply vdd-p not found, using dummy regulator
cs42l43 sdw:0:0:01fa:4243:01: supply vdd-d not found, using dummy regulator
cs42l43 sdw:0:0:01fa:4243:01: supply vdd-a not found, using dummy regulator
cs42l43 sdw:0:0:01fa:4243:01: supply vdd-io not found, using dummy regulator
cs42l43 sdw:0:0:01fa:4243:01: supply vdd-cp not found, using dummy regulator
cs35l56 sdw:0:2:01fa:3556:01:2: supply VDD_P not found, using dummy regulator
cs35l56 sdw:0:2:01fa:3556:01:2: supply VDD_IO not found, using dummy regulator
cs35l56 sdw:0:2:01fa:3556:01:2: supply VDD_A not found, using dummy regulator
cs35l56 sdw:0:2:01fa:3556:01:3: supply VDD_P not found, using dummy regulator
cs35l56 sdw:0:2:01fa:3556:01:3: supply VDD_IO not found, using dummy regulator
cs35l56 sdw:0:2:01fa:3556:01:3: supply VDD_A not found, using dummy regulator
cs35l56 sdw:0:3:01fa:3556:01:0: supply VDD_P not found, using dummy regulator
cs35l56 sdw:0:3:01fa:3556:01:0: supply VDD_IO not found, using dummy regulator
cs35l56 sdw:0:3:01fa:3556:01:0: supply VDD_A not found, using dummy regulator
cs35l56 sdw:0:3:01fa:3556:01:1: supply VDD_P not found, using dummy regulator
cs35l56 sdw:0:3:01fa:3556:01:1: supply VDD_IO not found, using dummy regulator
cs35l56 sdw:0:3:01fa:3556:01:1: supply VDD_A not found, using dummy regulator
sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.8.1.1
cs42l43 sdw:0:0:01fa:4243:01: devid: 0x042a43, rev: 0xa1, otp: 0x03
cs35l56 sdw:0:2:01fa:3556:01:3: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
cs35l56 sdw:0:3:01fa:3556:01:1: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
cs35l56 sdw:0:2:01fa:3556:01:2: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
cs35l56 sdw:0:3:01fa:3556:01:0: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
cs42l43 sdw:0:0:01fa:4243:01: Slave 6 state check1: UNATTACHED, status was 1
cs35l56 sdw:0:2:01fa:3556:01:3: Slave 1 state check1: UNATTACHED, status was 1
cs35l56 sdw:0:2:01fa:3556:01:2: Slave 2 state check1: UNATTACHED, status was 1
cs35l56 sdw:0:3:01fa:3556:01:1: Slave 1 state check1: UNATTACHED, status was 1
cs35l56 sdw:0:3:01fa:3556:01:0: Slave 2 state check1: UNATTACHED, status was 1
Adding alias for supply vdd-amp,(null) -> vdd-amp,sdw:0:0:01fa:4243:01
sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:0 Kernel ABI 3:23:0
sof-audio-pci-intel-mtl 0000:00:1f.3: error: can't connect DAI dai-copier.DMIC.dmic01.capture stream dmic01
sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to add widget id 0 type 28 name : dai-copier.DMIC.dmic01.capture stream dmic01
sof_sdw sof_sdw: ASoC: failed to load widget dai-copier.DMIC.dmic01.capture
sof_sdw sof_sdw: ASoC: topology: could not load header: -22
sof-audio-pci-intel-mtl 0000:00:1f.3: error: tplg component load failed -22
sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to load DSP topology -22
sof-audio-pci-intel-mtl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -22
sof_sdw sof_sdw: ASoC: failed to instantiate card -22
sof_sdw sof_sdw: error -EINVAL: snd_soc_register_card failed -22
sof_sdw: probe of sof_sdw failed with error -22
sof-logger. See https://thesofproject.github.io/latest/developer_guides/debugability/logger/index.html
# sof-logger
# TBD
The bug has initially been reported on launchpad
Activity
plbossart commentedon Mar 26, 2024
There are multiple problems here....
First, the use of a topology with RT711 on a platform with Cirrus Logic seems very very odd. There's clearly a problem in the detection of the hardware.
Can you please add this file
sof-dyndbg.conf.txt
to /etc/modprobe.d/sof-dyndbg.conf, reboot and then attach the result of 'alsa-info' and the full dmesg log.
Thanks!
plbossart commentedon Mar 26, 2024
@bardliao @rfvirgil @charleskeepax FYI
charleskeepax commentedon Mar 26, 2024
Yeah that is definitely odd, looking at the log it looks like the cs35l56's are on links 2/3 whereas the current MTL topology has them on links 1/2. So that might be why we are not picking up the system, weird it picks a RT711 that makes me wonder if there is some weirdness in the ACPI as well. Let me do some checking at this end.
charleskeepax commentedon Mar 26, 2024
ah I think the kernel is just missing this patch:
ASoC: Intel: mtl-match: Add cs42l43_l0 cs35l56_l23 for MTL
It is in mainline already but not in the 6.8 kernel, can you please test with Linus's tree.
charleskeepax commentedon Mar 26, 2024
So taking a dump of the ACPI on our copy of this laptop there does indeed appear to be a spurious rt711 in the ACPI tables, not quite sure where that is coming from. We have tested the laptop so I assume the right topology etc. gets picked once the kernel has support but weird there is a redundant Realtek device in the ACPI table.
plbossart commentedon Mar 26, 2024
@charleskeepax it's a classic that the DSDT includes devices that are not there. Intel reference has e.g. entries for RT700 and RT701, they are ignored and unused.
But if for some reason the entry for the spurious device is added BEFORE the actual devices, then the topology selection will fail. There's an implicit order in the selection.
charleskeepax commentedon Mar 26, 2024
I see... well in that case everything should be fine here, pretty sure the kernel just needs updating, it will get the new entries and find the correct topology.
plbossart commentedon Mar 26, 2024
@charleskeepax is this just that one patch that's problematic on this device?
Or do we also need all the patches queued up for 6.10?
moritz89 commentedon Mar 26, 2024
I booted and signed
6.9.0-060900rc1-generic #202403242136 SMP PREEMPT_DYNAMIC Sun Mar 24 21:49:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linuxand now it seems to recognize the sound card as cs42l43, but cannot find the correct topology file. Will see if I can find it somewhere. Currently usingfirmware-sof-signed/noble,now 2023.12.1-1ubuntu1Also, the patch seems to be in the 6.9-rc1 release:
plbossart commentedon Mar 26, 2024
the topology file is here: https://github.com/thesofproject/sof-bin/blob/8e1cd9b61c312aef5da23c50c88d2496b7c1b955/v2.9.x/sof-ipc4-tplg-v2.9/sof-mtl-cs42l43-l0-cs35l56-l23.tplg
moritz89 commentedon Mar 26, 2024
Installed the file and now resulting in the following dmesg output. Filtered with sudo dmesg | grep -E 'sof-audio-pci-intel-mtl|snd_hda_intel|cs35l56|sof_sdw|sof-audio-pci-intel-mtl|input|cs42l43-codec'.
Will try debug info from #4879 (comment) next
moritz89 commentedon Mar 26, 2024
dmesg.txt
alsa-info.txt
plbossart commentedon Mar 26, 2024
Looks liek the card is created
is this usable or not? I am not sure if the "Failed to write to 'CAL_AMBIENT'" reports are a problem, that would be for Cirrus folks to comment on.
67 remaining items
yvesh1123 commentedon May 13, 2024
@Maccchiatooo i'm having a camera issue also, can you link the issue here please so i can stay updated on it.
Maccchiatooo commentedon May 13, 2024
alexhulbert commentedon May 14, 2024
From what I can tell, the ipu6 camera stuff is kinda a mess rn. Since it's not built into the Linux Kernel, it breaks on every kernel release. I'm pretty sure some people have just managed to get it to work with 6.7, and we'd need 6.9.
At least on arch, several changes are needed to get ipu6 cameras working, you can find those changes documented here:
https://github.com/stefanpartheym/archlinux-ipu6-webcam
charleskeepax commentedon Jun 7, 2024
@vinassefranche - This patch https://lore.kernel.org/linux-sound/20240604132843.3309114-1-ckeepax@opensource.cirrus.com/ should fix your sporadic headset detection issues. I am not sure if building a custom kernel is something you would feel up to, but if so should be pretty easy to cherry-pick that patch in. If not then it is fairly likely the patch should get included in 6.10, 6.11 at the latest. So waiting for those to release would be the way to go.
vinassefranche commentedon Jun 13, 2024
@charleskeepax so cool! Sorry for now answering before, I don't know why I did not receive the notification email.
I'll wait for the next kernel versions I think. I'll confirm here when I have it.
Thanks a lot for the effort anyway!
sygi commentedon Sep 13, 2024
Hello from the future!
I tested the suggestions from this thread in 6.10.10. and they don't seem to work. When I moved back to 6.9.12, I started to see the hardware devices:
but I only managed to make one of them (2: speaker) to actually produce sound. I also observed that with
options snd-intel-dspcfg dsp_driver=1, I was able to make HDMI sound work but nothing else.winsvega commentedon Oct 1, 2024
Thanks for hinting which version of sof and kernel to use but that alone was not enough
the solution for me was:
kernel for sound 6.9.12
use pavucontrol to enable sound driver in config tab
set second from the list as default
ilmonk commentedon Oct 9, 2024
Thanks! I followed the steps, and now, if I set my configuration to 'Pro Audio' and use Audio Controller 2, the audio works. However, there's another problem: the headphone jack and the microphone still don't work. If I use USB headphones, the audio is fine, but the microphone doesn't work.
winsvega commentedon Oct 18, 2024
About this topology file.
It is indeed missing there. But I see that on 6.9.12 kernel where the sound works, it uses different file
/lib/firmware/intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l23.tplgand there it works just fine.
however, on the recent update of ubuntu of 6.8.0-47
if I symlink this file
intel/sof-ace-tplg/sof-mtl-rt711.tplgto I get this error.sudo ln -s /lib/firmware/intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l23.tplg /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711.tplgsof loads, but it seems like a problem with jack detection.
ubuntu of 6.8.0-47 actually consumes 4 times less power than others. so it would have been nice to have sound on it.
as well as video driver works only under it. so it is either sound and no video and less battery life or this.
maybe there is a way to disable this jack...
Looks like this is the patch to kernel that fixes the issue on 6.9.x
https://lore.kernel.org/lkml/20240123113246.75539-1-mstrozek@opensource.cirrus.com/T/
But could it be applied on 6.8.0-xx ?
bardliao commentedon Oct 22, 2024
I tried, but 6.8.y is end-of-life. So, no, it can't be applied to 6.8.0-xx
charleskeepax commentedon Oct 22, 2024
Yeah Ubuntu maintains their kernels separately so you would need to speak to Ubuntu about getting the patch backported to their kernel. The patch should be super trivial to backport so hopefully if you tell them it is for enabling a fairly popular model of laptop they might just backport it for you.
No idea what Canonical's rules on backporting new features/support or how responsive the process is though.
winsvega commentedon Oct 28, 2024
the end of support states it is april 2029, quite some time.
the laptop is a new model. lets see as more linux people buy it, the more they report the bug.
gaho1 commentedon Mar 25, 2025
For those Ubuntu LTS users who have no sound, updating to 6.11.0-19-generic via the following command resolved it for me:
sudo apt install --install-recommends linux-generic-hwe-24.04
winsvega commentedon Apr 4, 2025
confirm, 6.11.0 from official ubuntu works just fine with sound and video drivers.
Erma318 commentedon Apr 28, 2025
Has anyone tried with ubuntu 22.04 + a kernel >= 6.8 ? (my work requirement me to stay at 22.04 for now, but I guess it is fine for me to upgrade kernel to eg 6.9.x). But from my testing, 22.04 + 6.9/6.11/6.14 (mainline kernel) still do not work with all the instructions from above.