Skip to content

[BUG] No microphone capture on ThinkPad X1 Carbon Gen 14 (Panther Lake) — cs42l45 PDE 11 event failed: -110, missing sof-ptl-cs42l45 topology #5770

@sbarrier

Description

@sbarrier

[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:

  1. 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.

  2. 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).

  3. 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

Metadata

Metadata

Assignees

Labels

PTLApplies to Intel Panther Lake platformSDWApplies to SoundWire bus for codec connectionbugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions