You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
[ 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):
sof-firmware: 2025.12.2 is the latest upstream sof-bin release; there is no newer topology to install (and no sof-ptl-cs42l45-*.tplg exists 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 20260825 ships the exact sdca/1fa/17aa/2352/42450005.bin payload used by working systems
PipeWire: ruled out — direct ALSA capture from hw:1,4 is also all-zero
A/B between kernels: 7.1.8 vs 7.2.3 with otherwise identical system → cleanly reproduces/breaks
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.
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 — theLoading firmware: sdca/.../loading SWF: 1fa-42450005-1301lines that normally follow (and that are visible in #5854 on a working system) are completely absent. Every capture attempt then fails withcs42l45 PDE 11 event failed: -110and 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
sdca/1fa/17aa/2352/42450005.bin)intel/sof-ipc4/ptl/sof-ptl.riSymptoms
aplay -l/arecord -lfine)alsa_input.pci-0000_00_1f.3-platform-sof_sdw.HiFi__Mic__source→hw:1,4hw:1,4(bypassing PipeWire) produces a valid WAV of correct size containing only zeros (RMS 0.0, peak 0, verified byte-level)cs42l45 Microphone Capture Switch= on/on, volume non-zero, UCM "Mic" device applied — toggling anything has no effectRelevant dmesg (kernel 7.2.3, broken)
Note: no
Loading firmware: sdca/1fa/17aa/...and nosnd_soc_sdca_class_function ... loading SWF: 1fa-42450005-1301lines exist anywhere in the boot log — in contrast to working systems where they appear right afterSWFT not available(see #5854, kernel 7.1.5, Dell XPS 16 DA16260):Then, on every capture attempt on 7.2.3 (first one at ~25s, recurring all day whenever the mic is used):
The SDCA function devices bind fine in sysfs:
The SWF payload is present on disk:
What I've tried / ruled out
sof-ptl-cs42l45-*.tplgexists at all — the function-topology path is the correct one for this machine)kernel-firmware-sound 20260825ships the exactsdca/1fa/17aa/2352/42450005.binpayload used by working systemshw:1,4is also all-zeroRelated issues
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)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.