-
Notifications
You must be signed in to change notification settings - Fork 349
Description
Describe the bug
On ThinkPad X1 Carbon Gen 13 (Lunar Lake) with RT713 + RT1318 SoundWire codecs, the topology sof-lnl-rt713-l0-rt1318-l1-2ch.tplg fails to load because it includes DMIC widgets, but the hardware has no DMICs according to NHLT tables.
The driver reports "DMICs detected in NHLT tables: 0" but the topology expects 2-channel PCH-attached DMICs, causing the topology load to fail with error -22 (EINVAL).
To Reproduce
- Boot ThinkPad X1 Carbon Gen 13 (21NSCTO1WW) with Lunar Lake CPU
- Ensure sof-bin firmware is installed (tested with v2.13 / 2025.05.1)
- Check
sudo dmesg | grep -i sof
Reproduction Rate
100% - Every boot
Expected behavior
Sound card should initialize. Either:
- A no-DMIC topology variant should exist for this hardware configuration
- The driver should select a topology based on NHLT DMIC count
Impact
Showstopper - No audio output or input. Sound card fails to initialize.
Environment
- Kernel/SOF versions:
- Kernel: 6.16.12+deb13-amd64 (Devuan)
- SOF: sof-bin v2.13 (2025.05.1)
- Topology file:
- Requested:
intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1.tplg - Symlinked to:
sof-lnl-rt713-l0-rt1318-l1-2ch.tplg
- Requested:
- Platform:
- ThinkPad 21NSCTO1WW (X1 Carbon Gen 13)
- Intel Lunar Lake CPU
- Audio Controller: Intel Lunar Lake-M HD Audio Controller [8086:a828]
- Subsystem: Lenovo [17aa:2339]
Hardware Configuration
Codecs detected:
- RT713 on SoundWire Link 0 (headphone jack/audio)
- RT1318 on SoundWire Link 1 (speaker amplifier)
NHLT Tables:
- DMICs detected: 0 (NONE)
- BT link detected: 0x4
- HDA codecs found, mask 4
Console output
[ 23.820064] sof-audio-pci-intel-lnl 0000:00:1f.3: enabling device (0004 -> 0006)
[ 23.820263] sof-audio-pci-intel-lnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 24.282295] sof-audio-pci-intel-lnl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [xe])
[ 24.289433] sof-audio-pci-intel-lnl 0000:00:1f.3: use msi interrupt mode
[ 24.319601] sof-audio-pci-intel-lnl 0000:00:1f.3: hda codecs found, mask 4
[ 24.319608] sof-audio-pci-intel-lnl 0000:00:1f.3: BT link detected in NHLT tables: 0x0
[ 24.319611] sof-audio-pci-intel-lnl 0000:00:1f.3: DMICs detected in NHLT tables: 0
[ 24.322756] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware paths/files for ipc type 1:
[ 24.322761] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware file: intel/sof-ipc4/lnl/sof-lnl.ri
[ 24.322762] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/lnl
[ 24.322763] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology file: intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1.tplg
[ 24.323505] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.13.0.1
[ 24.599008] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-openmodules.ri (-2)
[ 24.599033] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-openmodules.ri (-2)
[ 24.599044] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-openmodules.ri (-2)
[ 24.599063] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-debug.ri (-2)
[ 24.599073] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-debug.ri (-2)
[ 24.599082] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-debug.ri (-2)
[ 24.601665] sof-audio-pci-intel-lnl 0000:00:1f.3: Booted firmware version: 2.13.0.1
[ 24.648016] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[ 24.648290] sof-audio-pci-intel-lnl 0000:00:1f.3: error: can't connect DAI dai-copier.DMIC.dmic01.capture stream dmic01
[ 24.648334] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to add widget type 28 name : dai-copier.DMIC.dmic01.capture stream dmic01
[ 24.648356] sof_sdw sof_sdw: ASoC: failed to load widget dai-copier.DMIC.dmic01.capture
[ 24.648369] sof_sdw sof_sdw: ASoC: topology: could not load header: -22
[ 24.648407] sof-audio-pci-intel-lnl 0000:00:1f.3: tplg intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1.tplg component load failed -22
[ 24.648423] sof-audio-pci-intel-lnl 0000:00:1f.3: error: failed to load DSP topology -22
[ 24.648435] sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_component_probe() on 0000:00:1f.3
[ 24.648468] sof_sdw sof_sdw: ASoC: failed to instantiate card -22
[ 24.648589] sof_sdw sof_sdw: error -EINVAL: snd_soc_register_card failed -22
[ 24.648627] sof_sdw sof_sdw: probe with driver sof_sdw failed with error -22
Note: The sof-lnl-openmodules.ri and sof-lnl-debug.ri failures are expected (optional debug modules).
Analysis
The original PR #9550 that added RT713/RT1318 support for LNL specifies "2ch PCH-attached DMICs" in the commit message. However, not all ThinkPad X1 Gen 13 variants have DMICs - this unit reports 0 DMICs in NHLT.
Available RT713/RT1318 topologies in sof-bin v2.13:
sof-lnl-rt713-l0-rt1318-l1.tplg→ symlink to-2chvariantsof-lnl-rt713-l0-rt1318-l1-2ch.tplg- Includes DMIC widgets (incompatible with no-DMIC hardware)
No 0-channel DMIC variant exists for this codec configuration.
Other LNL topologies available (for reference):
sof-lnl-rt713-l2-rt1320-l13.tplgsof-lnl-rt1318-l12-rt714-l0.tplgsof-lnl-rt712-l2-rt1320-l1.tplg- Various cs42l43 configurations (some with -2ch/-4ch variants)
Proposed Fix
- Add a no-DMIC topology variant:
sof-lnl-rt713-l0-rt1318-l1-0ch.tplgor similar - Alternatively, modify the driver/topology selection logic to account for NHLT DMIC count when selecting the topology file
Workarounds Attempted
-
Kernel parameter
snd_sof_intel_hda_common.dmic_num=0- No effect (topology selection happens before this is checked) -
Potential workaround (untested): Manually create a no-DMIC topology by stripping DMIC widgets from the existing topology using
sof-tplgreadertools -
Possible kernel parameter override for topology filename - Needs investigation:
snd_sof_intel_lnl.tplg_filename=<alternative>However, no suitable alternative topology exists for RT713-L0 + RT1318-L1 without DMIC.
Related Issues
- [BUG] dmic recording volume is too low #9681 - Same hardware platform (ThinkPad X1G13 with RT713/RT1318) - but their unit has DMICs and topology loads successfully. This confirms the topology works when DMIC hardware is present. Our issue is specifically the no-DMIC variant.
- topology2: add rt713 and rt1318 support on LNL machine #9550 - Original PR adding RT713/RT1318 LNL support (commit message states "2ch PCH-attached DMICs" - assumes DMICs present)
- Tools: Topology2: Add pre-processing to ACE 1/2/3.x PCH DMIC topologies #9690 - PR that added DMIC pre-processing to ACE 1/2/3.x PCH DMIC topologies
Root Cause
The ThinkPad X1 Carbon Gen 13 has hardware variants:
- Some units have PCH-attached DMICs (2ch) → topology loads fine ([BUG] dmic recording volume is too low #9681)
- Some units have no DMICs (0ch) → topology fails (this bug)
The topology sof-lnl-rt713-l0-rt1318-l1-2ch.tplg unconditionally includes DMIC widgets regardless of actual hardware presence, causing EINVAL when the DAI can't be connected.