[BUG] No microphone capture on ThinkPad X1 Carbon Gen 14 (Panther Lake) — cs42l45 PDE 11 event failed: -110, missing sof-ptl-cs42l45 topology
Summary
The internal microphone does not work on the Lenovo ThinkPad X1 Carbon Gen 14 (Panther Lake, model 21V7CTO1WW) running Linux. The SOF driver loads and enumerates the audio card successfully, speakers and headphone jack work, but all capture from the internal microphone produces silence. The root cause is a missing sof-ptl-cs42l45*.tplg topology file in sof-firmware — only cs42l43 topologies exist for Panther Lake — combined with a missing SoundWire machine driver match for the cs42l45 codec (mfg_id 0x01fa, part_id 0x4245) on this platform.
Platform
| Field |
Value |
| Machine |
Lenovo ThinkPad X1 Carbon Gen 14 |
| Model |
21V7CTO1WW |
| BIOS |
N4OET41W (1.04) |
| Platform |
Intel Panther Lake |
| Kernel |
7.0.4 (Fedora / Aurora Linux) |
| SOF firmware |
2.14.1.1 (sof-ptl.ri) |
| Distribution |
Aurora Linux (Fedora-based, immutable) |
Codec Hardware
SoundWire devices reported by the SOF driver at boot:
sof-audio-pci-intel-ptl 0000:00:1f.3: link 2 mfg_id 0x01fa part_id 0x3563 version 0x3 → cs35l56 (speaker amp)
sof-audio-pci-intel-ptl 0000:00:1f.3: link 3 mfg_id 0x01fa part_id 0x4245 version 0x3 → cs42l45 (headset + mic codec)
ALSA components string:
HDA:80862822,80860101,00100000 cfg-amp:2 iec61937-pcm:7,6,5 spk:cs35l56 hs:cs42l45 mic:cs42l45-dmic
Symptoms
aplay -l shows Speaker, Jack Out, HDMI outputs — all work correctly
arecord -l shows device 4: Microphone and device 1: Jack In — devices enumerate but produce silence
arecord -D hw:0,4 -f S16_LE -r 48000 -c 2 -d 3 /tmp/test.wav produces a valid WAV file of correct size but containing only zeros — confirmed with od
amixer -c 0 sget 'cs42l45 Microphone' shows volume at 100% [on], but no signal is captured
- All mixer controls (
cs42l45 Microphone, cs42l45 IT 31 Microphone, etc.) are present and can be toggled, but toggling has no effect on capture output
Root Cause
1. Missing topology file
The sof-firmware package ships Panther Lake topologies for cs42l43 but not for cs42l45:
# Present in /lib/firmware/intel/sof-ipc4-tplg/:
sof-ptl-cs42l43-agg-l3-cs35l56-l2-4ch.tplg.xz
sof-ptl-cs42l43-agg-l3-cs35l56-l2.tplg.xz
sof-ptl-cs42l43-l2-cs35l56x6-l13.tplg.xz
# MISSING — does not exist:
sof-ptl-cs42l45-*.tplg
Because no matching topology exists, the driver falls back to the generic SDCA function topology (sof-sdca-mic-id4.tplg), which does not properly configure the cs42l45 capture pipeline for this hardware.
2. No SoundWire machine driver match
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
The kernel's sound/soc/intel/common/soc-acpi-intel-ptl-match.c has no entry for the cs42l45 (0x01fa:0x4245) + cs35l56 (0x01fa:0x3563) combination on Panther Lake.
3. cs42l45 PDE power domain timeout
Every capture attempt results in:
sof_sdw sof_sdw: ASoC: POST_PMU: cs42l45 PDE 11 event failed: -110
-110 is ETIMEDOUT. The codec's Power Domain Enable (PDE 11) fails to complete, preventing the capture path from being powered up. This is a direct consequence of the missing topology — without a proper pipeline definition, the DSP cannot correctly sequence the codec power-up.
Relevant dmesg
[ 40.567383] sof-audio-pci-intel-ptl 0000:00:1f.3: No SoundWire machine driver found for the ACPI-reported configuration:
[ 40.567387] sof-audio-pci-intel-ptl 0000:00:1f.3: link 2 mfg_id 0x01fa part_id 0x3563 version 0x3
[ 40.567390] sof-audio-pci-intel-ptl 0000:00:1f.3: link 3 mfg_id 0x01fa part_id 0x4245 version 0x3
[ 40.567396] sof-audio-pci-intel-ptl 0000:00:1f.3: Use SoundWire default machine driver with function topologies
[ 40.982911] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 0: intel/sof-ipc4-tplg/sof-sdca-1amp-id2.tplg
[ 40.988947] sof-audio-pci-intel-ptl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[ 40.989084] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 1: intel/sof-ipc4-tplg/sof-sdca-jack-id0.tplg
[ 40.996107] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 2: intel/sof-ipc4-tplg/sof-sdca-mic-id4.tplg
[ 41.002109] sof-audio-pci-intel-ptl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[ 55.401716] sof_sdw sof_sdw: ASoC: POST_PMU: cs42l45 PDE 11 event failed: -110
[ 56.507382] sof_sdw sof_sdw: ASoC: POST_PMU: cs42l45 PDE 11 event failed: -110
[ 64.500107] sof_sdw sof_sdw: ASoC: POST_PMU: cs42l45 PDE 11 event failed: -110
What Works / What Doesn't
| Component |
Status |
| Speaker playback |
✅ Working |
| Headphone jack playback |
✅ Working |
| HDMI audio |
✅ Working |
| Internal microphone capture |
❌ Silence / PDE timeout |
| Headset microphone (jack) |
❌ Not tested, likely same issue |
Fix Required
Three things need to happen:
-
sof-firmware / thesofproject/sof: Add a sof-ptl-cs42l45-l3-cs35l56-l2.tplg topology (and variants) for the Panther Lake + cs42l45 + cs35l56 codec combination, analogous to the existing sof-ptl-cs42l43-* topologies.
-
Kernel sound/soc/intel/common/soc-acpi-intel-ptl-match.c: Add a SoundWire machine driver match entry for mfg_id 0x01fa, part_id 0x4245 (cs42l45) on Panther Lake, paired with mfg_id 0x01fa, part_id 0x3563 (cs35l56).
-
alsa-ucm-conf: The existing sof-soundwire/cs42l45-dmic.conf UCM profile references CaptureMixerElem "cs42l45 Microphone" which does exist, but the MicCodec1 variable is not being resolved for this hardware's component string (mic:cs42l45-dmic) — verify the sof-soundwire.conf matching table covers the full Panther Lake component signature.
Additional Context
- The cs42l43 codec (different chip, similar family) already has working PTL topologies — the cs42l45 work could likely be based on those
- This is the same hardware also missing IPU7 camera bridge support for
OVTI08F4 / OVTI01AF sensors, suggesting the X1 Carbon Gen 14 (21V7CTO1WW) has not yet been fully enabled upstream
- The SOF DSP firmware boots and authenticates correctly (
version: 2.14.1.1); this is purely a topology/machine driver gap, not a firmware issue
rpm -q sof-firmware and full dmesg available on request
[BUG] No microphone capture on ThinkPad X1 Carbon Gen 14 (Panther Lake) — cs42l45 PDE 11 event failed: -110, missing sof-ptl-cs42l45 topology
Summary
The internal microphone does not work on the Lenovo ThinkPad X1 Carbon Gen 14 (Panther Lake, model 21V7CTO1WW) running Linux. The SOF driver loads and enumerates the audio card successfully, speakers and headphone jack work, but all capture from the internal microphone produces silence. The root cause is a missing
sof-ptl-cs42l45*.tplgtopology file in sof-firmware — onlycs42l43topologies exist for Panther Lake — combined with a missing SoundWire machine driver match for thecs42l45codec (mfg_id 0x01fa, part_id 0x4245) on this platform.Platform
sof-ptl.ri)Codec Hardware
SoundWire devices reported by the SOF driver at boot:
ALSA components string:
Symptoms
aplay -lshows Speaker, Jack Out, HDMI outputs — all work correctlyarecord -lshowsdevice 4: Microphoneanddevice 1: Jack In— devices enumerate but produce silencearecord -D hw:0,4 -f S16_LE -r 48000 -c 2 -d 3 /tmp/test.wavproduces a valid WAV file of correct size but containing only zeros — confirmed withodamixer -c 0 sget 'cs42l45 Microphone'shows volume at 100%[on], but no signal is capturedcs42l45 Microphone,cs42l45 IT 31 Microphone, etc.) are present and can be toggled, but toggling has no effect on capture outputRoot Cause
1. Missing topology file
The
sof-firmwarepackage ships Panther Lake topologies forcs42l43but not forcs42l45:Because no matching topology exists, the driver falls back to the generic SDCA function topology (
sof-sdca-mic-id4.tplg), which does not properly configure the cs42l45 capture pipeline for this hardware.2. No SoundWire machine driver match
The kernel's
sound/soc/intel/common/soc-acpi-intel-ptl-match.chas no entry for thecs42l45(0x01fa:0x4245) +cs35l56(0x01fa:0x3563) combination on Panther Lake.3. cs42l45 PDE power domain timeout
Every capture attempt results in:
-110isETIMEDOUT. The codec's Power Domain Enable (PDE 11) fails to complete, preventing the capture path from being powered up. This is a direct consequence of the missing topology — without a proper pipeline definition, the DSP cannot correctly sequence the codec power-up.Relevant dmesg
What Works / What Doesn't
Fix Required
Three things need to happen:
sof-firmware/thesofproject/sof: Add asof-ptl-cs42l45-l3-cs35l56-l2.tplgtopology (and variants) for the Panther Lake + cs42l45 + cs35l56 codec combination, analogous to the existingsof-ptl-cs42l43-*topologies.Kernel
sound/soc/intel/common/soc-acpi-intel-ptl-match.c: Add a SoundWire machine driver match entry formfg_id 0x01fa, part_id 0x4245(cs42l45) on Panther Lake, paired withmfg_id 0x01fa, part_id 0x3563(cs35l56).alsa-ucm-conf: The existingsof-soundwire/cs42l45-dmic.confUCM profile referencesCaptureMixerElem "cs42l45 Microphone"which does exist, but theMicCodec1variable is not being resolved for this hardware's component string (mic:cs42l45-dmic) — verify thesof-soundwire.confmatching table covers the full Panther Lake component signature.Additional Context
OVTI08F4/OVTI01AFsensors, suggesting the X1 Carbon Gen 14 (21V7CTO1WW) has not yet been fully enabled upstreamversion: 2.14.1.1); this is purely a topology/machine driver gap, not a firmware issuerpm -q sof-firmwareand fulldmesgavailable on request