Repository navigation
[BUG] Internal mic silent on ThinkPad X1 Carbon Gen 14 with kernel 7.2.x — SDCA SmartMic SWF fallback not loading (worked on 7.1.8, same BIOS) #5933
Description
Summary
The internal microphone of a Lenovo ThinkPad X1 Carbon Gen 14 (Panther Lake, CS42L45 + 2x CS35L63) works on kernel 7.1.8 but is broken (capture delivers only all-zero samples) on kernel 7.2.3 with the same BIOS, same sof-firmware, same alsa-ucm-conf and same kernel-firmware packages. Everything else (speakers, headphone jack, HDMI, headset jack state) is unchanged.
The distinguishing failure in the kernel log is that after SWFT not available, no SWF fallback load happens at all — the Loading firmware: sdca/... / loading SWF: 1fa-42450005-1301 lines that normally follow (and that are visible in #5854 on a working system) are completely absent. Every capture attempt then fails with cs42l45 PDE 11 event failed: -110 and the SmartMic power domain never comes up. This suggests a 7.2.x regression in the SDCA SmartMic firmware-loading path (SWFT → file-set fallback).
This is a different failure than #5770 (closed via Lenovo BIOS 1.12): this machine already runs BIOS N4OET51W (1.14), the SDCA functions (SmartMic/UAJ/HID) all bind, and the mic worked on 7.1.8 with this exact BIOS.
System information
| Field | Value |
|---|---|
| Machine | Lenovo ThinkPad X1 Carbon Gen 14, model 21V7CTO1WW |
| CPU | Intel Core Ultra X7 358H (Panther Lake) |
| BIOS | N4OET51W (1.14), 07/01/2026 |
| Distribution | openSUSE Tumbleweed (OSS snapshot 20260908) |
| Kernel broken | 7.2.3-1-default |
| Kernel working | 7.1.8-1-default (same machine, same userspace, just GRUB menu entry) |
| sof-firmware | 2025.12.2-1.2 (latest upstream sof-bin release) |
| alsa-ucm-conf | 1.2.16.1-1.2 |
| kernel-firmware-sound | 20260825-1.1 (ships sdca/1fa/17aa/2352/42450005.bin) |
| SOF FW | 2.14.1.1, loads from intel/sof-ipc4/ptl/sof-ptl.ri |
Symptoms
- Card enumerates normally: Speaker, Jack Out, HDMI1-3 playback + Jack In / Microphone capture devices all present (
aplay -l/arecord -lfine) - Speakers, headphones and HDMI all work; only internal mic capture is affected
- PipeWire exposes
alsa_input.pci-0000_00_1f.3-platform-sof_sdw.HiFi__Mic__source→hw:1,4 - Recording from
hw:1,4(bypassing PipeWire) produces a valid WAV of correct size containing only zeros (RMS 0.0, peak 0, verified byte-level) - Mixer controls all sane:
cs42l45 Microphone Capture Switch= on/on, volume non-zero, UCM "Mic" device applied — toggling anything has no effect - A/B test: boot 7.1.8 → mic works; boot 7.2.3 → silence. Repeated twice.
Relevant dmesg (kernel 7.2.3, broken)
[ 15.626934] sof-audio-pci-intel-ptl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[ 16.021623] sof-audio-pci-intel-ptl 0000:00:1f.3: No SoundWire machine driver found for the ACPI-reported configuration:
[ 16.022320] sof-audio-pci-intel-ptl 0000:00:1f.3: link 2 mfg_id 0x01fa part_id 0x3563 version 0x3
[ 16.022977] sof-audio-pci-intel-ptl 0000:00:1f.3: link 2 mfg_id 0x01fa part_id 0x3563 version 0x3
[ 16.023697] sof-audio-pci-intel-ptl 0000:00:1f.3: link 3 mfg_id 0x01fa part_id 0x4245 version 0x3
[ 16.024449] sof-audio-pci-intel-ptl 0000:00:1f.3: Use SoundWire default machine driver with function topologies
[ 16.041368] sof-audio-pci-intel-ptl 0000:00:1f.3: Firmware paths/files for ipc type 1:
[ 16.042000] sof-audio-pci-intel-ptl 0000:00:1f.3: Firmware file: intel/sof-ipc4/ptl/sof-ptl.ri
[ 16.042562] sof-audio-pci-intel-ptl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/ptl
[ 16.043120] sof-audio-pci-intel-ptl 0000:00:1f.3: Topology file: function topologies
[ 16.044358] sof-audio-pci-intel-ptl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
[ 16.183559] sdca_class sdw:0:3:01fa:4245:01: SWFT not available
[ 16.282979] sdca_class sdw:0:3:01fa:4245:01: Reached MAX_RETRY on alert read
[ 16.356317] sof-audio-pci-intel-ptl 0000:00:1f.3: Booted firmware version: 2.14.1.1
[ 16.373046] cs35l56 sdw:0:2:01fa:3563:01:0: Cirrus Logic CS35L63 Rev A1 OTP1 fw:2.3.1 (patched=0)
[ 16.507662] sof-audio-pci-intel-ptl 0000:00:1f.3: Using function topologies instead intel/sof-ipc4-tplg/sof-ptl-dummy.tplg
[ 16.508001] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 0: intel/sof-ipc4-tplg/sof-sdca-1amp-id2.tplg
[ 16.509133] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 1: intel/sof-ipc4-tplg/sof-sdca-jack-id0.tplg
[ 16.510554] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 2: intel/sof-ipc4-tplg/sof-sdca-mic-id4.tplg
[ 16.512495] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 3: intel/sof-ipc4-tplg/sof-hdmi-pcm5-id5.tplg
[ 17.593320] input: sof-soundwire Jack as /devices/.../sof_sdw/sound/card1/input36
[ 19.713872] soundwire_intel soundwire_intel.link.3: prepare clock stop failed -110
[ 19.714458] soundwire_intel soundwire_intel.link.3: intel_stop_bus: cannot stop clock: -110
Note: no Loading firmware: sdca/1fa/17aa/... and no snd_soc_sdca_class_function ... loading SWF: 1fa-42450005-1301 lines exist anywhere in the boot log — in contrast to working systems where they appear right after SWFT not available (see #5854, kernel 7.1.5, Dell XPS 16 DA16260):
[ 17.563180] sdca_class sdw:0:0:01fa:4245:01: SWFT not available
[ 17.573463] Loading firmware: sdca/1fa/1028/dba/2.bin
[ 17.574342] snd_soc_sdca_class_function snd_soc_sdca.SmartMic.0: loading SWF: 1fa-2-1
[ 17.578944] Loading firmware: sdca/1fa/1028/dba/42450005.bin
[ 17.579372] snd_soc_sdca_class_function snd_soc_sdca.SmartMic.0: loading SWF: 1fa-42450005-1301
Then, on every capture attempt on 7.2.3 (first one at ~25s, recurring all day whenever the mic is used):
[ 25.626570] snd_soc_sdca_class_function snd_soc_sdca.SmartMic.0: PDE 11: PDE transition 3 -> 0 failed, err=-110
[ 25.626606] sof_sdw sof_sdw: ASoC: POST_PMU: cs42l45 PDE 11 event failed: -110
[ 31.504852] soundwire_intel soundwire_intel.link.3: prepare clock stop failed -110
[ 31.504860] soundwire_intel soundwire_intel.link.3: intel_stop_bus: cannot stop clock: -110
The SDCA function devices bind fine in sysfs:
/sys/devices/.../sdw:0:3:01fa:4245:01/snd_soc_sdca.SmartMic.0
/sys/devices/.../sdw:0:3:01fa:4245:01/snd_soc_sdca.UAJ.1
/sys/devices/.../sdw:0:3:01fa:4245:01/snd_soc_sdca.HID.2
The SWF payload is present on disk:
/lib/firmware/sdca/1fa/17aa/2352/{1,2,3,4,42450005}.bin.xz
/lib/firmware/sdca/1fa/17aa/2353/{1,2,3,4,42450005}.bin.xz
What I've tried / ruled out
- BIOS: 1.14 is newer than the 1.12 that fixed [BUG] No microphone capture on ThinkPad X1 Carbon Gen 14 (Panther Lake) — cs42l45 PDE 11 event failed: -110, missing sof-ptl-cs42l45 topology #5770 for this model; SmartMic SDCA functions bind (so the file set IDs from ACPI are present)
- sof-firmware: 2025.12.2 is the latest upstream sof-bin release; there is no newer topology to install (and no
sof-ptl-cs42l45-*.tplgexists at all — the function-topology path is the correct one for this machine) - alsa-ucm-conf: current (1.2.16.1); UCM verb/device apply correctly; switches are in the expected state
- kernel-firmware:
kernel-firmware-sound 20260825ships the exactsdca/1fa/17aa/2352/42450005.binpayload used by working systems - PipeWire: ruled out — direct ALSA capture from
hw:1,4is also all-zero - A/B between kernels: 7.1.8 vs 7.2.3 with otherwise identical system → cleanly reproduces/breaks
Related issues
- [BUG] No microphone capture on ThinkPad X1 Carbon Gen 14 (Panther Lake) — cs42l45 PDE 11 event failed: -110, missing sof-ptl-cs42l45 topology #5770 — same laptop, mic silence, but the old BIOS-era root cause (BIOS 1.04, missing file set IDs); closed as fixed by Lenovo BIOS 1.12. Not applicable here (BIOS 1.14 + 7.1.8 works).
- [BUG] SoundWire bus-wide IO timeouts on CS42L45+CS35L57 after enabling SDCA_CLASS - Dell XPS 16 DA16260 (follow-up to #5720) #5854 — Dell XPS 16 PTL + CS42L45: reference for the working SWF fallback sequence (
SWFT not available→loading SWF: ...), plus a bus-wide IO-timeout issue on custom Gentoo configs (not seen here — only link 3 is affected, link 2/CS35L63 amps are fine) - [BUG] Lenovo Yoga Pro 7 15IPH11 (83SN) — No SoundWire machine driver found, sof_sdw probe fails with duplicate sysfs filename (SDW3-Playback-SimpleJack) #5884 — Lenovo Yoga Pro 7 PTL: same "No SoundWire machine driver found" fallback family
Suggested direction for debugging
Since the only environmental change is the kernel, the regression window is 7.1.8 → 7.2.3 in the SDCA class-function firmware path: the driver neither uses the ACPI SWFT (BIOS 1.14 doesn't seem to provide one) nor falls back to the _DSD file-set / request_firmware path that 7.1.x used. A git log --oneline 7.1..7.2 -- sound/soc/sdca/ bisect would likely find it quickly.
Additional data (full dmesg for the broken boot, SDCA dynamic-debug output, ACPI dumps) is available on request.
Activity
charleskeepax commentedon Sep 10, 2026
If you were comfortable building a kernel could you try the following patch from Linus's tree:
commit ee1811e
soundwire: bus_type: Create IRQ mapping before calling driver probe()
I think you maybe have hit a bug exposed by the shuffling of the IRQ handling.
kdejaeger commentedon Sep 10, 2026
No, looks like we'll have to wait till end of oktober for v7.3 to come out.
charleskeepax commentedon Sep 11, 2026
7.2 should still be in active support. I will see if I can get the patch copied to stable was probably missed as it doesn't have a fixes tag. Would have been better to be sure it's the fix you need, but I am like 85% sure.
kdejaeger commentedon Sep 11, 2026
Thanks, it it get's backported to 7.2, let me know which version it will be and I will check it out soon then.
kdejaeger commentedon Sep 11, 2026
Boot-to-boot variability confirms the IRQ-mapping race hypothesis
Collected 5 consecutive boots on this machine (7.2.3 and 7.2.4, openSUSE Tumbleweed, identical userspace/BIOS). The discriminator between the three observed states is whether the CS42L45 SmartMic SDCA function (
snd_soc_sdca.SmartMic.0) attaches and loads its SWF:PDE 11 event failed: -1101fa-2-1,1fa-42450005-1309,1fa-3-1)PDE 11 event failed: -110Details per state:
State A — no card (boots 21:22, 21:27). The CS42L45 slave enumerates on link 3 (
sdw:0:3:01fa:4245:01) and the HID/UAJ SDCA functions bind, butsnd_soc_sdca.SmartMic.0never appears. Thesof_sdwmachine driver still binds, but no ALSA card is registered (/proc/asound/cardsempty). This matches a SmartMic function probe failure (consistent withbus_typenot having created the IRQ mapping before the driver'sprobe()).State B — card present, capture silent (boots 21:09, 21:25). All three SDCA functions bind, but the SWF file-set fallback never fires (no
Loading firmware: sdca/.../loading SWF:lines afterSWFT not available). Every capture attempt then fails with:which fits PDE transitions (and the SWF transfer itself) depending on interrupt-driven completion with the alert IRQ missing/racy.
State C — works (boot 21:24). SWF loads (
loading SWF: 1fa-2-1,loading SWF: 1fa-42450005-1309,loading SWF: 1fa-3-1) and no PDE/clock-stop errors occur.This is consistent with
ee1811eacdbba15a374957c2bcc6ba7102e2b781("soundwire: bus_type: Create IRQ mapping before calling driver probe()") being the right fix — the same three symptom depths would all collapse to "IRQ mapping not yet created when the CS42L45 functions attach". On 7.1.8 (pre-refactor ordering) every boot worked on this machine.I checked
linux-7.2.y: the patch is not on that branch yet — I'll retest as soon as it lands in a stable point release and report back. Boot logs available if useful.charleskeepax commentedon Sep 17, 2026
Alas not having much luck with the stable kernel folks. I will try resending the patch on Monday see if it gets any traction second time around, but we might need to wait for 7.3 here.
https://lore.kernel.org/stable/20260911123332.4035153-1-ckeepax@opensource.cirrus.com/
charleskeepax commentedon Sep 28, 2026
Still not having much luck with the stable resend, pretty sure we are just going to have to wait for 7.3. I will leave the ticket open until 7.2 stable support closes, just in case.
hlavki commentedon Oct 1, 2026
Same bug on a Dell XPS 14 DA14260 (Panther Lake, CS42L45 on link 0, 4x CS35L57 on links 2/3, BIOS 1.11.0), openSUSE Tumbleweed, kernel 7.2.8-1-default, sof-firmware 2025.12.2, kernel-firmware-sound 20260825. The internal mic recorded only zeros, with every mixer control on:
There were no
loading SWFlines afterSWFT not available, and the PDE 11 error repeated every time the mic was opened.I rebuilt only
soundwire-bus.kofrom the 7.2.8 sources with ee1811e applied. In 7.2.8,drivers/soundwire/bus_type.cdiffers from v7.3-rc5 only by this commit, so it applies cleanly without the rest of the series. After a reboot the mic records real signal: every sample is non-zero, with room noise around -50 dBFS RMS where it was digital silence before. That's one boot so far, and I'll report back if it comes back on later boots.So this machine is affected too. I'm happy to give a Tested-by if it helps the stable resend for 7.2.