Repository navigation
[BUG] X1 Carbon Gen 13 (LNL, RT713/RT1318, DMICs present): widget drc.100.1 fails IPC load (UUID B36EE4DA-...) — distinct from fixed #10401 (no-DMIC variant) #10755
Description
Audio fails to initialize on the X1 Carbon Gen 13 (Lunar Lake) with current sof-firmware: no ALSA cards register, no playback or capture available. Reproduces 100% across reboots and across multiple kernel versions (Linux 7.0.3, 7.0.4, mainline torvalds/linux master) — not a recent regression.
Hardware
ThinkPad X1 Carbon Gen 13 (Lunar Lake), SoundWire — RT713-SDCA on link 0, RT1318 on link 1.
Software
- sof-bin v2025.12.2
- Linux 7.0.4 (also seen on 7.0.3 with identical dmesg signature)
- Also reproduced against
torvalds/linuxmaster (2026-05-08), whereinclude/uapi/sound/sof/abi.hdefines:
#define SOF_ABI_MAJOR 3
#define SOF_ABI_MINOR 23
#define SOF_ABI_PATCH 1Distinct from #10401 — same hardware, opposite NHLT variant
NHLT here reports DMICs detected in NHLT tables: 2 (vs 0 in #10401), so the DMIC DAI binding succeeds; the failure shifts to widget drc.100.1 (UUID B36EE4DA-006F-47F9-A06D-FECBE2D8B6CE). #10410's no-DMIC topology variant does not apply to this variant.
Filing per kv2019i's "Please file a new bug if some issues remain" close note on #10401.
Symptom
snd_soc_register_card fails with -22 (-EINVAL); cat /proc/asound/cards returns --- no soundcards ---.
sof-audio-pci-intel-lnl 0000:00:1f.3: enabling device (0004 -> 0006)
sof-audio-pci-intel-lnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
sof-audio-pci-intel-lnl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [xe])
sof-audio-pci-intel-lnl 0000:00:1f.3: codec thesofproject/sof-bin#2 probe error, ret: -2
sof-audio-pci-intel-lnl 0000:00:1f.3: no hda codecs found!
sof-audio-pci-intel-lnl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
sof-audio-pci-intel-lnl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
sof-audio-pci-intel-lnl 0000:00:1f.3: DMICs detected in NHLT tables: 2
sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware file: intel/sof-ipc4/lnl/sof-lnl.ri
sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/lnl
sof-audio-pci-intel-lnl 0000:00:1f.3: Topology file: intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1-2ch.tplg
sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
sof-audio-pci-intel-lnl 0000:00:1f.3: Booted firmware version: 2.14.1.1
soundwire_intel soundwire_intel.link.1: prepare clock stop failed -110
soundwire_intel soundwire_intel.link.1: intel_stop_bus: cannot stop clock: -110
sof-audio-pci-intel-lnl 0000:00:1f.3: loading topology: intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1-2ch.tplg
sof-audio-pci-intel-lnl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred
sof-audio-pci-intel-lnl 0000:00:1f.3: ipc4_tx_msg_unlocked: ipc message send for 0x19000000|0x0 failed: -19
sof-audio-pci-intel-lnl 0000:00:1f.3: failed to find module info for widget drc.100.1 with UUID B36EE4DA-006F-47F9-A06D-FECBE2D8B6CE
sof-audio-pci-intel-lnl 0000:00:1f.3: failed updating IPC struct for drc.100.1
sof-audio-pci-intel-lnl 0000:00:1f.3: error: failed to load DSP topology -22
sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_component_probe() on 0000:00:1f.3
sof_sdw sof_sdw: ASoC: failed to instantiate card -22
sof_sdw sof_sdw: error -EINVAL: snd_soc_register_card failed -22
The relevant chain in that trace: topology load is initiated, the Topology: ABI 3:29:1 Kernel ABI 3:23:1 line is logged informationally and the kernel proceeds; the kernel then issues IPC4 message 0x19000000 to instantiate widget drc.100.1 on the DSP; the DSP returns -19 (-ENODEV); topology load aborts with -22 and sof_sdw never registers a card.
Workaround
Replacing four LNL-specific file groups under /lib/firmware/intel/ with the v2024.09.1 set restores audio after reboot, including the 3.5mm jack on RT713-SDCA. ADSPFW (the boot firmware running on the DSP) downgrades from 2.14.1.1 to 2.13.0.1 as a side effect; firmware files for other platforms are untouched.
| installed path | replaced with (from sof-bin v2024.09.1) |
|---|---|
sof-ipc4/lnl/intel-signed/sof-lnl.ri |
v2.11.x/sof-ipc4-v2.11.1/lnl/intel-signed/sof-lnl.ri |
sof-ipc4/lnl/community/sof-lnl.ri |
v2.11.x/sof-ipc4-v2.11.1/lnl/community/sof-lnl.ri |
sof-ipc4-lib/lnl/ (full directory) |
v2.11.x/sof-ipc4-lib-v2.11.1/lnl/ |
sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1-2ch.tplg |
v2.11.x/sof-ipc4-tplg-v2.11.2/sof-lnl-rt713-l0-rt1318-l1-2ch.tplg |
Topology comparison
sof-lnl-rt713-l0-rt1318-l1-2ch.tplg:
| v2024.09.1 | v2025.12.2 | |
|---|---|---|
| size | 59755 bytes | 71775 bytes |
drc.NN.N strings |
0 | 6 (incl. drc.100.1) |
refs to UUID B36EE4DA-006F-47F9-A06D-FECBE2D8B6CE |
0 | yes |
The widget binary itself (/lib/firmware/intel/sof-ipc4-lib/lnl/B36EE4DA-006F-47F9-A06D-FECBE2D8B6CE.bin) is on disk and identical-size in both firmware sets, so this isn't a missing-file-on-disk issue — the file is loadable, but the IPC instantiation request to the DSP returns -ENODEV.
Related issues
Same Topology: ABI 3:29:1 Kernel ABI 3:23:1 dmesg signature:
- [BUG] ThinkPad X1 Carbon Gen 13 (LNL) - Topology fails due to DMIC mismatch (RT713-L0 + RT1318-L1, no DMICs) #10401 — same hardware, NHLT-DMICs-absent variant. Closed, fixed by topology2: add sof-lnl-rt713-l0-rt1318-l1.tplg #10410.
- [BUG] No sound on internal speakers - Samsung 960XGL (Meteor Lake-P, Realtek ALC298, SOF ABI mismatch 3:29:1 vs kernel 6.17 ABI 3:23:1) #10677 — Meteor Lake / Samsung 960XGL, kernel 6.17. Closed; actual root cause for that hardware was a MAX98390 codec driver gap.
- TGL (Tiger Lake) ALC257 ABI mismatch: firmware 3:22:1 vs kernel 6.17 ABI 3:23:1 - rain noise on DMIC #10635 — Tiger Lake, kernel 6.17. Open. ABI mismatch in opposite direction (firmware
3:22:1vs kernel3:23:1). - thesofproject/sof-bin#207 — same X1 Carbon Gen 13. Different symptom (their card registers, no HP audio).
Activity
kv2019i commentedon May 8, 2026
@wee-beybrice Ok. The DRC DSP module was moved to from base module into separate module in v2025.12. The expected behaviour is that kernel will try to load the firmware from /lib/firmware, but for some reason this is not happening in your case. Can you rename sof-dyndbg.conf.txt to sof-dyndbg.conf and put it in the /etc/modprobe.d/ folder, and get the dmesg log after reboot? The kernel driver will print messages when it attempts to load the module.
wee-beybrice commentedon May 8, 2026
Thanks for the quick response. Re-applied the stock v2025.12.2 firmware files to
/lib/firmware/intel/(boot firmware, library, topology) and installed yoursof-dyndbg.confinto/etc/modprobe.d/. dmesg below, captured viasudo dmesg -T | grep -iE 'sof|snd_|soundwire|asoc|sdw|codec|dsp|audio|firmware:|iwlmld'.One artifact to flag: the initramfs (
/boot/initramfs-7.0.5-wee-bey.img) was generated while my local audio workaround had v2024.09.1 firmware installed, so it has the olderADSPFW 2.11.1.1boot firmware embedded. The log shows that loading first (pre-pivot), thenADSPFW 2.14.1.1reloading from/lib/firmwareafter pivot. Thedrc.100.1failure happens after the 2.14.1.1 reload, so I don't think the mismatch is masking anything — but happy to regenerate the initramfs against current/lib/firmwareand re-capture if it would help.What's notably absent from the log (re: your "for some reason this is not happening" hypothesis): no
firmware:request line forB36EE4DA-006F-47F9-A06D-FECBE2D8B6CE.bin(or any other UUID-named.binfrom/lib/firmware/intel/sof-ipc4-lib/lnl/). The kernel does not appear to attempt to fetch the DSP module's.binbefore the IPC fordrc.100.1fails. The widget binary IS on disk:/lib/firmware/intel/sof-ipc4-lib/lnl/B36EE4DA-006F-47F9-A06D-FECBE2D8B6CE.bin(size 0xb720, identical between v2024.09.1 and v2025.12.2 firmware sets).Dyndbg activated for ~85 modules per
/sys/kernel/debug/dynamic_debug/controlpost-boot.PCI subsystem ID for the audio controller, in case it's relevant for matching:
8086:a828(Lunar Lake-M HD Audio), subsystem17aa:233f(Lenovo).ujfalusi commentedon May 11, 2026
@wee-beybrice, the sof-dyndbg is not taken into account, but this is what I can see from the log:
There is a mismatch between the basefw version and the library that is tried to be loaded and the firmware rejects this:
Please make sure that the firmware files used are from the same sof-bin release (regenerate the initrd, etc)
ujfalusi commentedon May 11, 2026
on my test LNL machine:
m2freem commentedon May 21, 2026
Having a similar issue of no sound
Same machine as Original Poster
Applied https://github.com/user-attachments/files/27471756/sof-dyndbg.conf.txt
Rebooted system
ujfalusi commentedon May 26, 2026
@m2freem, I think the issue on your end is different, you did not reach the point when the DRC library would be loaded but fail earlier:
iDispl1 is registered with id=4 while it is assumed to be using id=5
with sof-lnl-rt722-lo.tplg this looks like this:
@bardliao, can you help?
Something like this would work for the topology?
you can try this topology (make sure you make a backup of the original one): sof-lnl-rt713-l0-rt1318-l1.tplg.tar.gz
bardliao commentedon May 26, 2026
@m2freem There is no DMIC supported by the rt713 or rt1318 codecs. However, the PCH DMIC is not detected in your device but it is detected in @wee-beybrice's device. Can you check is there any updated BIOS available?
You can also add "options snd_sof_intel_hda_generic dmic_num=2" to any of the .conf file in the /etc/modprobe.d/ folder.
@ujfalusi Indeed, it looks like something is wrong in the sof-lnl-rt713-l0-rt1318-l1 topology.
m2freem commentedon May 26, 2026
fwupdmgr refresh, upgrade, and reboot
matches most recent on Lenovo website:
I will try, to add "options snd_sof_intel_hda_generic dmic_num=2" as well as the proposed topology.
bardliao commentedon May 27, 2026
@ujfalusi @m2freem Looks like rt713 supports DMIC endpoint. Maybe what we need to do is
@m2freem Could you try the above change?
oortcomet commentedon May 27, 2026
@m2freem @bardliao After inquiring with the member in Realtek, this project was not using RT713 dmic.
bardliao commentedon May 27, 2026
@m2freem Let's try function topology. Please apply below change
and https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?id=c84179a1d36b
Then share the dmesg log again.
m2freem commentedon May 27, 2026
I've made some headway with getting sound to output. I have a double today. I'll post my findings tomorrow.
github-actions commentedon Jul 27, 2026
This issue has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this issue will automatically be closed in 14 days. Note, that you can always re-open a closed issue at any time.
deep-name commentedon Sep 24, 2026
For the no-DMIC variant of this board (my unit, and @m2freem's log above): the "physical link iDisp1 (id 5) not exist" failure is the HDMI id mismatch fixed on main by #10958, which is not in stable-v2.14 / sof-bin 2025.12.x. Once the ids are corrected the card registers, but on kernel 6.16 with matched 2.14.1 base firmware + drc.llext the DRC module then fails with error 104 and a DSP panic after the first runtime resume (works while the DSP never suspends, works again after a full firmware boot, fails after every fast resume). Details, experiment and a backport request in #11229. Workaround that works: a topology built with SDW_SPK_ENHANCED_PLAYBACK=false.