Repository navigation
Bug Report: No SoundWire machine driver match for Dell XPS 13 DX13260 (Wildcat Lake) — CS35L56 speaker amps run unpatched/uncalibrated #5918
Description
Summary
On a Dell XPS 13 DX13260 (Intel Wildcat Lake platform), the internal speaker amplifiers (Cirrus Logic CS35L56, SoundWire) initialize with base firmware but never receive the DSP calibration/tuning patch. The kernel falls back to a default/generic SoundWire machine driver because no machine-driver quirk matches this laptop's ACPI-reported configuration. Result: internal speaker audio is present but quiet and shallow — no bass shaping, no loudness curve, no excursion-protected max volume — consistent with the amps running on unpatched factory OTP defaults.
System Information
Model: Dell XPS 13 DX13260
Baseboard: 0865D8
Platform: Intel Wildcat Lake (Panther Lake family, "Core Series 3")
Audio PCI device: sof-audio-pci-intel-ptl 0000:00:1f.3
Sound card: sofsoundwire (SOF SoundWire)
SoundWire modalias: sdw:m01FAp4243v03c01
Speaker amps: 2x Cirrus Logic CS35L56 (spi-cs35l56-left, spi-cs35l56-right), Rev B2, OTP1
Amp firmware: fw:4.2.1 (patched=0) — base firmware loaded, calibration patch NOT applied
Also present: Cirrus Logic CS42L43 (combo codec, on SoundWire link)
OS: Kubuntu 26.04.1 LTS ("resolute")
Kernel: 7.0.0-31-generic
Expected Behavior
The kernel should match this laptop's ACPI-reported SoundWire configuration to a Dell-specific machine driver, which would request the correct cirrus/cs35l56-* .wmfw/.bin calibration files for this board and apply them to the CS35L56 amps, producing full-range, properly tuned speaker output (as on Windows).
Actual Behavior
The kernel logs a fallback and no calibration firmware is ever requested:
sof-audio-pci-intel-ptl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
sof-audio-pci-intel-ptl 0000:00:1f.3: No SoundWire machine driver found for the ACPI-reported configuration:
sof-audio-pci-intel-ptl 0000:00:1f.3: Use SoundWire default machine driver with function topologies
cs35l56 spi-cs35l56-left: Cirrus Logic CS35L56 Rev B2 OTP1 fw:4.2.1 (patched=0)
cs35l56 spi-cs35l56-right: Cirrus Logic CS35L56 Rev B2 OTP1 fw:4.2.1 (patched=0)
sof_sdw sof_sdw: Setting CS42L43 Speaker volume limit to 128
sudo dmesg | grep -i -E "request_firmware|cirrus/|wmfw|.bin" returns no entries related to cirrus/ calibration files — confirming the driver never attempts to load one, rather than a load failure. /lib/firmware/cirrus/ on this system contains only one Rev B2 calibration set (cs35l56-b2-dsp1-misc-10280dd6-*), which does not correspond to this board's subsystem ID, further indicating no calibration package exists yet for this specific Dell SKU.
Playback device sofsoundwire, device 2: Speaker is present and functional at the ALSA level (aplay -l), but audio output is noticeably quiet and lacks low-end/bass compared to the same laptop under Windows.
Steps to Reproduce
Boot Kubuntu 26.04.1 (kernel 7.0.0-31-generic) on a Dell XPS 13 DX13260.
Play any audio through the internal speakers.
Observe reduced volume and shallow/flat tonal quality vs. Windows on the same hardware.
Check dmesg for the "No SoundWire machine driver found" message and fw:...(patched=0) on both CS35L56 amps.
Diagnostics Already Performed (ruled out)
Not a mixer/volume/profile issue — pavucontrol/PipeWire levels checked, no clipping or hidden low caps.
Not a missing SOF firmware issue — SOF DSP firmware itself loads fine; only the amp-specific calibration patch is affected.
Not a BIOS/firmware issue — fwupdmgr reports no updates available for any component.
Not a stale linux-firmware package — /lib/firmware/cirrus/ contains many CS35L56 calibration sets for other Dell/HP/Lenovo boards, just none matching this SKU/revision.
Confirmed this matches a known class of issue on Wildcat Lake: per a related upstream report (#5832, different codec vendor, same platform), an Intel SOF maintainer confirmed the codec/amp vendor must upstream a machine-driver match in sound/soc/sdw_utils/soc_sdw_utils.c before the correct topology/calibration path can be used — this is not fixable via firmware packages or userspace audio configuration.
Suspected Root Cause
Missing machine-driver quirk / ACPI match entry for this Dell XPS 13 DX13260 SoundWire configuration in the kernel's SOF/ASoC SoundWire machine driver table, and/or missing corresponding Dell-specific CS35L56 calibration (.wmfw/.bin) files in linux-firmware. Likely a case of hardware (Wildcat Lake, launched ~April 2026) shipping ahead of upstream driver/firmware support.
Requested Action
Add/upstream the SoundWire machine-driver match for this board's ACPI configuration (SoundWire modalias sdw:m01FAp4243v03c01, board ID 0865D8).
Publish/package the corresponding CS35L56 calibration files for this Dell SKU in linux-firmware.
Additional Notes
Happy to provide further diagnostics (full dmesg, acpidump, sof-ctl topology dump, etc.) on request — please let me know what would help triage this.
Activity
DudeBro-79 commentedon Sep 5, 2026
audio debug.txt
cachyos-bugreport.log
grep.txt
Same issue on Panther Lake Core Ultra 7 DX13260 on CachyOS.
charleskeepax commentedon Sep 7, 2026
Could you both please attach the output of "lspci -vvvnn"? I suspect just an upgrade of linux-firmware is all that is needed, but that should give me the info to check if firmware is missing for either of these SKUs.
DudeBro-79 commentedon Sep 7, 2026
Attached. Thanks.
lspci vvvnn 00 00 0 Host.txt
charleskeepax commentedon Sep 7, 2026
@DudeBro-79 your laptop should be supported. If you look in the WHENCE file in the linux-firmware repo there is an entry to create a symlink for the firmware for your laptop (10280e54). Either your version of linux-firmware is too old (if you don't see an entry for the SSID in the WHENCE file), or the full procedure for installing linux-firmware has not been followed (if you see the entry in WHENCE but no symlink in your firmware directory).
simontrimmer commentedon Sep 7, 2026
@DudeBro-79 - May I also request some additional debug output? Could you place :
options spi_cs42l43 dyndbg=+pmf
options snd-soc-cs35l56 dyndbg=+pmf
options snd_soc_cs35l56_shared dyndbg=+pmf
in a file /etc/modprobe.d/dyndbg.conf
reboot and gather us another dmesg please?
DudeBro-79 commentedon Sep 7, 2026
forgive me Im a noob so I got some help on your requests from claude. I attached the output. Hopefully its what you were looking for.
@charleskeepax — WHENCE main has the entries (8911–8919), aliasing the 10280e54 .bins to the 10280e53 set and .wmfw to cs35l56/CS35L56_Rev4.5.9.wmfw. My snapshot is linux-firmware-cirrus 20260810-2, which predates that commit, so I replicated all nine links under /usr/lib/firmware/updates/cirrus/ (link and target both .zst, since Arch ships them compressed).
Still FIRMWARE_MISSING, because the driver isn't asking for any of those names:
spi_cs42l43:cs42l43_get_speaker_id_gpios: cs42l43-spi cs42l43-spi: spk-id-gpios = 0
snd_soc_cs35l56_shared:cs35l56_get_speaker_id: cs35l56 spi-cs35l56-left: Speaker ID = 0
snd_soc_cs35l56:cs35l56_dsp_work: cs35l56 spi-cs35l56-left: DSP fwf name: 'b2-dsp1' system name: '10280e54-spkid0'
cs35l56 spi-cs35l56-left: FIRMWARE_MISSING
cs35l56 spi-cs35l56-left: Calibration disabled due to missing firmware controls
cs35l56 spi-cs35l56-left: Can't read tuning IDs
Both amps read Speaker ID 0, but no spkid0 set is published for 10280e54 (or for 10280e53). Either the spk-id GPIO decode is wrong for this SKU or a spkid0 variant exists on the Windows side and hasn't been released. I haven't symlinked spkid0 to one of the others — wrong speaker tuning, and it would hide this.
Since these are SPI-attached amps behind the CS42L43, the missing firmware means bridge mode never enables, so there's no speaker output at all: aplay -l shows only device 2: Speaker (the CS42L43's own path) plus HDMI. The kernel also still logs No SoundWire machine driver found for the ACPI-reported configuration and falls back to function topologies, so I assume the machine-driver match for this SSID is still needed independently.
Amps: Rev B2 OTP1 fw:4.2.1 (patched=0), SiliconID 0x29da61555baea (left) / 0x29da61555bb60 (right).
dmesg-dyndbg-fw.txt
charleskeepax commentedon Sep 7, 2026
Hm... yeah we shouldn't be seeing a spkid0 there, so something is amiss.
Could you try this:
sudo rmmod snd_soc_pci_intel_ptl
sudo modprobe snd-soc-pci-intel-ptl
The first command takes a while and will generate a few errors in the kernel log (apologies, this is a known issue with accessing soundwire registers during driver removal). Then the second command should reprobe the sound card. Could you grab a log after that and fire it over?
Curious as to if it gets the right GPIO value the second time, or if it consistently fails with spkid0.
DudeBro-79 commentedon Sep 7, 2026
The 2 commands you gave me errored out. I included what Claude thinks you meant lol.
52m 56s sudo rmmod snd.txt
systemctl user stop pipewire.txt
charleskeepax commentedon Sep 7, 2026
Ah sorry typo on my part, the commands should be:
sudo rmmod snd_sof_pci_intel_ptl
sudo modprobe snd-sof-pci-intel-ptl
charleskeepax commentedon Sep 7, 2026
Actually the claude version did get us there, will have a think and report back.
DudeBro-79 commentedon Sep 7, 2026
Awesome, I look forward to hearing back.
charleskeepax commentedon Sep 8, 2026
Ok we have found an issue with the ACPI on this system, we are working out what the best solution is here, but will likely take us a few days.
DudeBro-79 commentedon Sep 8, 2026
Sound good, thanks for looking into it. Unfortunately I'm having to return this laptop to Dell soon for some issues unrelated to this. I'll hold off for a couple of days in sending it to see if you guys follow up. Thanks for the hard work though!
juanrortiz commentedon Sep 13, 2026
Summary
Dell XPS 13 DX13260 (Wildcat Lake, Intel Core Ultra) — CS42L43 + 2× CS35L56 SoundWire/SPI speaker path loads without errors but never applies OEM calibration firmware, leaving speakers silent. OEM calibration files for this exact board (subsystem
1028:0e53) exist inlinux-firmwareunderspkid1/spkid2/spkid3variants, but there is nospkid0fallback, and this board's DSDT exposes no ACPI mechanism (no_DSD, no dedicated device nodes) for the kernel to determine which variant applies.System
lspci -nnk):Subsystem: Dell Device [1028:0e53]Hardware topology
sdw:0:2:01fa:4243:01)spi-cs35l56-left,spi-cs35l56-right)Observed behavior
On a clean boot (no firmware manually added):
sudo dmesg | grep -iE "request_firmware|cirrus/|wmfw"returns nothing — the driver never attempts to load a calibration file for this board, matching or failing.At the ALSA/routing level everything downstream is correctly configured and non-fatal:
AMPL/AMPR Speaker Switch= on, volume at 370/400 (not muted),cs42l43 Speaker L/R Inputcorrectly routed toDP6RX1/DP6RX2per thecs42l43-spkUCM profile,speaker-testplays through all periods with zero ALSA-level errors. No audible output at any volume.Calibration files exist but are never requested
/lib/firmware/cirrus/(fromsof-firmware/linux-firmware) already contains files matching this exact subsystem ID:There is no
spkid0variant for this ID, and nocs35l56-b2-dsp1-misc-10280e53.wmfw.zst(no-suffix fallback) either.ACPI investigation — no speaker-ID mechanism exists on this board
find /sys -iname "*speaker_id*"returns nothing, and no dmesg line references speaker-ID detection. I disassembled the DSDT (iasl -d) and checked the SPI1 controller scope directly:This is the only
SPI1-scoped content in the DSDT — there are no child device nodes for the CS35L56 amps at all (no_HID, no_DSD, no per-device properties of any kind). The CS35L56 devices are apparently only being enumerated via generic ASoC/SOF machine-driver inference tied to the CS42L43's SoundWire presence, not via explicit ACPI declaration. This confirms the issue isn't a kernel-side parsing gap — Dell's firmware genuinely does not expose any way to determine speaker ID or amp topology for this board via ACPI.Reproduction of a secondary fault (please don't do this — included for diagnostic value only)
As a manual test, I copied
spkid1's.wmfw/.binfiles to the no-suffix fallback filenames the driver would use absent a resolvable speaker ID:After reboot, this did not restore audio. Instead it introduced an SPI bus fault during probe and broke the whole card (not just the speaker):
aplay -lthen reported no sound card at all. This persisted until the copied files were deleted and initramfs was rebuilt (mkinitcpio -P), confirming the files had also been baked into the initramfs image. This suggestsspkid1's calibration/timing parameters are not safely interchangeable with however this specific board's two amps are actually wired, and that guessing at spkid variants isn't a safe workaround for other users hitting this.Request
Since no ACPI-based speaker-ID detection exists on this board (confirmed via DSDT disassembly above), the fix likely needs to be a hardcoded quirk/mapping for Dell subsystem
1028:0e53to the correctspkidvariant, rather than relying on runtime detection. Could someone with visibility into whichspkidcorresponds to this Dell SKU (Cirrus/Dell likely know this from their OEM calibration submission) confirm the correct mapping, or point to where such a quirk should be added in the SOF/CS35L56 driver?Happy to test patches or gather any further diagnostics — this is 100% reproducible on stock CachyOS with current
sof-firmware.DudeBro-79 commentedon Sep 13, 2026
Interesting, I have a wildcat lake as well(did have pantherlake but wound up sending it back) and speakers have been good the whole time.
charleskeepax commentedon Sep 14, 2026
@DudeBro-79 Could you attach a dmesg from your Wildcat Lake, my expectation would be that it would suffer from the same problem? I guess maybe as it only gets a single GPIO if that model has that GPIO set then it would load spkid1 and work.
DudeBro-79 commentedon Sep 14, 2026
wildcatlake-dmesg.txt
Ive not had an issue with this since cachyos 7.1.8. I did try Fedora 44 and it didn't load the second amp so there was no low end. But I've always had audio. Maybe if anything not tuned as well as when windows was briefly installed.
charleskeepax commentedon Sep 14, 2026
Hmm... yeah loads skdid1:
I would be careful and maybe don't turn the volume up too loud until we figure out if this is the right tuning here, we don't know what the second spkid gpio should be reading. If you felt brave you could try Richard's patch from https://bugzilla.kernel.org/show_bug.cgi?id=221956 and see if you still get spkid1 loaded.
DudeBro-79 commentedon Sep 14, 2026
Patch applied and compiled.
wildcatlake-patched-dmesg.txt
DudeBro-79 commentedon Sep 14, 2026
On claude's suggestion I ran de-bug then reran the dmesg.
wildcatlake-patched-dmesg-v2.txt
charleskeepax commentedon Sep 17, 2026
Ok that looks very promising, we can see it is loading a different tuning now:
[ 6.133488] cs35l56 spi-cs35l56-right: DSP1: cirrus/cs35l56-b2-dsp1-misc-10280e53-spkid3.wmfw: format 3 timestamp 0x68d1a788
[ 6.300197] cs35l56 spi-cs35l56-left: DSP1: cirrus/cs35l56-b2-dsp1-misc-10280e53-spkid3.wmfw: format 3 timestamp 0x68d1a788
Does suggest you should indeed be careful if running a kernel without that patch as the spkid1 tuning it was loading before is clearly the wrong tuning.
DudeBro-79 commentedon Sep 18, 2026
Looks like the patch is in cachy 7.2.6-1cachyos
wildcatlake-7.2.6-full-dmesg.txt
charleskeepax commentedon Sep 18, 2026
I don't think the patch is merged there, and if you look through the log you will see it is still loading spkid1 rather than 3, so do still continue to be careful with the volumes for now :-)
juanrortiz commentedon Sep 19, 2026
I di Richard's patch from bugzilla on 7.2.6-1-cachyos-gcc and i have working audio now.
I'll keep audio low,out of caution atleast until this patch is officially pushed to the kernel