Skip to content

[BUG] LNL rt713-l0-rt1318-l1 (no DMIC): DRC LLEXT error 104 + DSP panic after first runtime resume with matched 2.14.1 fw+lib on kernel 6.16; #10958 HDMI id fix missing from stable-v2.14 #11229

Description

@deep-name

Follow-up from the reporter of #10401. Two remaining problems on this board, one of them
reproducible on demand.

Hardware: ThinkPad X1 Carbon Gen 13, 21NSCTO1WW, BIOS N4BET69W 1.39. RT713 on SoundWire
link 0 (_ADR 0x000031025D071301), RT1318 on link 1 (0x000133025D131801), NHLT reports
0 DMICs (BIOS microphone switch is off; sibling units with it on report 2 and load the -2ch
topology). Software: Debian 13, kernel 6.16.12 (Debian backports build), firmware-sof-signed
2025.12.2-2 = sof-bin v2025.12.2 intel-signed: sof-lnl.ri md5 9d66bffa1da7bc493dbe2767fc03bf6f,
drc.llext md5 9456b5416ce1d70d1d15d658135bc6c9 (the pair @ujfalusi confirmed on 7.0.5 in
#10755). alsa-ucm-conf 1.2.14, PulseAudio 17. Apologies for never testing the v2 build in
December; here is the full picture now.

1. sof-lnl-rt713-l0-rt1318-l1.tplg from #10410 fails to load as shipped in sof-bin 2025.12.x

It inherits HDMI back-end ids 5/6/7 from hdmi-default.conf, but on a no-DMIC board sof_sdw
(6.16 and 7.0) creates SDW0-Playback 0, SDW0-Capture 1, SDW1-Playback 2, SDW1-Capture 3
(rt1318 feedback link), iDisp1-3 = 4/5/6:

sof_sdw sof_sdw: ASoC: physical link iDisp1 (id 5) not exist
sof_sdw sof_sdw: ASoC: topology: could not load header: -22

This is what @m2freem hit in #10755 (2026-05-26). It is fixed on main by 22cae7b (#10958)
and shipped in sof-bin v2026.09, but not in stable-v2.14 / sof-bin v2025.12.x, which is
what Debian (forky/sid: firmware-sof-signed 2025.12.2-2) and other distributions package.
The prebuilt "v2" attached to #10401 also has ids 5/6/7.

Request: backport #10958 to stable-v2.14 and tag a 2025.12.x with it, so the
distribution packages work on this board without hand-built files.

2. Confirmation: with the HDMI ids fixed, the card works on a no-DMIC unit

I rebuilt the topology from the v2.14.1 topology2 tree with alsatplg 1.2.14 (the build with
the stock defines reproduces the 2025.12.2 binary byte for byte; adding
HDMI1_ID=4,HDMI2_ID=5,HDMI3_ID=6 changes 6 bytes). The card registers with Jack Out/In,
Speaker, HDMI1-3 and Deepbuffer Jack Out; speaker, headphones and HDMI sinks appear in
PulseAudio and speakers play. As far as I can tell this is the first confirmed working
no-DMIC X1 Carbon Gen 13.

3. Reproducible: DRC LLEXT instantiation fails after the first runtime resume (kernel 6.16, fw 2.14.1)

With the corrected topology (speaker path mixout -> gain -> eqiir -> eqfir -> drc.21.1),
base firmware and drc.llext both 2.14.1.1 from the same release, the library loads fine at
topology time (second "Loaded firmware library: ADSPFW, version: 2.14.1.1" line), but the
first speaker playback fails:

FW reported error: 104 - Other failure of module instance initialization request
ipc error for msg 0x40001000|0x1000a
failed to create module drc.21.1
... (4 retries) ...
DSP panic!  fw_state: SOF_FW_BOOT_COMPLETE (7)  0x50000005: module: ROM_EXT, state: FW_ENTERED

Controlled experiment, same files throughout, PCI 0000:00:1f.3 runtime PM toggled via
/sys/bus/pci/devices/0000:00:1f.3/power/control (set AFTER the driver probe, since
sof_pci_probe calls pm_runtime_allow()), 2 s aplay -D plughw:0,2 as the probe:

phase condition result
A driver bound, power/control=on (DSP never suspends), wait 12 s, play OK
B power/control=auto, DSP idles (runtime_status=suspended), play error 104 + DSP panic
B2 after the panic the next wake-up is a full firmware boot, play OK
B3 one more idle cycle (fast resume), play error 104 + DSP panic
C same but topology built with SDW_SPK_ENHANCED_PLAYBACK=false (no DRC) OK, always

So the library works exactly when the running firmware image received it once: on a full boot
(A, B2). It breaks after every fast resume from IMR (B, B3). Reading the code:

  • kernel 6.16 hda_dsp_ipc4_load_library() skips the post-resume re-send only when
    reload && booted_from_imr && fw_context_save; the Linux production firmware has
    CONFIG_ADSP_IMR_CONTEXT_SAVE=n (app/os_linux_overlay.conf), so sof_ipc4_reload_fw_libraries()
    re-sends drc.llext (LOAD_LIBRARY_PREPARE + LOAD_LIBRARY) after each resume;
  • firmware 2.14.1 restores the LLEXT manager context from DRAM on boot
    (src/library_manager/llext_manager_dram.c, llext_manager_restore_from_dram()), so the
    re-sent library lands on top of an already restored one, and the next
    MOD_INIT_INSTANCE for drc.21.1 fails with 104;
  • kernel 6.17+ has ace9b3daf2b4 ("Add support for library restore firmware functionality"),
    which skips the re-send when FW_READY carries SOF_IPC4_FW_READY_LIB_RESTORED (BIT(15)),
    but in v2.14.1 ipc_boot_complete_msg() sets header->pri = SOF_IPC4_FW_READY without that
    bit, so I am not sure a newer kernel alone avoids this with 2.14.1 firmware. Positive reports
    of 2.14.1 on 7.0.x may simply not have hit a fast resume before the first playback, or the
    firmware may take a different path there; you will know better.

Whichever side is meant to own this, two consequences seem worth addressing:
(a) a firmware should tolerate a duplicate LOAD_LIBRARY of a library it already restored
(no-op or clean error) instead of leaving the module manager in a state that panics the DSP;
(b) if the fix is kernel-side, a stable backport to 6.12.y/6.16.y would help distributions
that pair LTS kernels with 2.14.x firmware. I can test patches on this machine.

Workaround I am using: the topology rebuilt with SDW_SPK_ENHANCED_PLAYBACK=false (no DRC on
the speaker path, no library involved). Note for #11076: the same error signature, with matched
files, after the first runtime suspend on a pre-6.17 kernel; "panic stopped after enabling
sof_debug" fits, since tracing keeps the DSP from idling.

Audio-related dmesg excerpt of the whole experiment (A, B, B2, B3, C) is below; the full log is available on request.

dmesg excerpt of the experiment (sof/soundwire lines only)
[623392.686296] sof-audio-pci-intel-lnl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [xe])
[623392.695129] sof-audio-pci-intel-lnl 0000:00:1f.3: use msi interrupt mode
[623392.718738] sof-audio-pci-intel-lnl 0000:00:1f.3: hda codecs found, mask 4
[623392.718745] sof-audio-pci-intel-lnl 0000:00:1f.3: BT link detected in NHLT tables: 0x0
[623392.718749] sof-audio-pci-intel-lnl 0000:00:1f.3: DMICs detected in NHLT tables: 0
[623392.720647] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware paths/files for ipc type 1:
[623392.720650] sof-audio-pci-intel-lnl 0000:00:1f.3:  Firmware file:     intel/sof-ipc4/lnl/sof-lnl.ri
[623392.720652] sof-audio-pci-intel-lnl 0000:00:1f.3:  Firmware lib path: intel/sof-ipc4-lib/lnl
[623392.720654] sof-audio-pci-intel-lnl 0000:00:1f.3:  Topology file:     intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1.tplg
[623392.721694] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
[623393.009258] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-openmodules.ri (-2)
[623393.009277] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-openmodules.ri (-2)
[623393.009288] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-openmodules.ri (-2)
[623393.009307] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-debug.ri (-2)
[623393.009315] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-debug.ri (-2)
[623393.009323] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-debug.ri (-2)
[623393.011845] sof-audio-pci-intel-lnl 0000:00:1f.3: Booted firmware version: 2.14.1.1
[623393.014926] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[623393.015711] sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred
[623393.015893] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
[623393.053513] sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
[623393.069371] input: sof-soundwire Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input32
[623393.069807] input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input33
[623393.069924] input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input34
[623393.070012] input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input35
[623405.741328] sof-fix: DSP smoke test start 1790220173
[623426.430723] sof-fix: DSP smoke test start 1790220194
[623436.642356] sof-audio-pci-intel-lnl 0000:00:1f.3: FW reported error: 104 - Other failure of module instance initialization request
[623436.642388] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc error for msg 0x40001000|0x1000a
[623436.642403] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to create module drc.21.1
[623436.643854] sof-audio-pci-intel-lnl 0000:00:1f.3: Failed to set up connected widgets
[623436.643863] sof-audio-pci-intel-lnl 0000:00:1f.3: sof_pcm_setup_connected_widgets: pcm2 (Speaker), dir 0: Widget list set up failed
[623436.643867] sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_pcm_component_hw_params() on 0000:00:1f.3
[623436.643891]  Speaker: ASoC error (-22): at __soc_pcm_hw_params() on Speaker
[623436.643898] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 1
[623436.643913]  Speaker: ASoC error (-22): at dpcm_fe_dai_hw_params() on Speaker
[623436.643932] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 6
[623439.666790] sof-audio-pci-intel-lnl 0000:00:1f.3: FW reported error: 104 - Other failure of module instance initialization request
[623439.666833] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc error for msg 0x40001000|0x1000a
[623439.666860] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to create module drc.21.1
[623439.668276] sof-audio-pci-intel-lnl 0000:00:1f.3: Failed to set up connected widgets
[623439.668292] sof-audio-pci-intel-lnl 0000:00:1f.3: sof_pcm_setup_connected_widgets: pcm2 (Speaker), dir 0: Widget list set up failed
[623439.668302] sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_pcm_component_hw_params() on 0000:00:1f.3
[623439.668363]  Speaker: ASoC error (-22): at __soc_pcm_hw_params() on Speaker
[623439.668378] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 1
[623439.668398]  Speaker: ASoC error (-22): at dpcm_fe_dai_hw_params() on Speaker
[623439.668427] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 6
[623442.691846] sof-audio-pci-intel-lnl 0000:00:1f.3: FW reported error: 104 - Other failure of module instance initialization request
[623442.691886] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc error for msg 0x40001000|0x1000a
[623442.691913] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to create module drc.21.1
[623442.693366] sof-audio-pci-intel-lnl 0000:00:1f.3: Failed to set up connected widgets
[623442.693385] sof-audio-pci-intel-lnl 0000:00:1f.3: sof_pcm_setup_connected_widgets: pcm2 (Speaker), dir 0: Widget list set up failed
[623442.693391] sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_pcm_component_hw_params() on 0000:00:1f.3
[623442.693433]  Speaker: ASoC error (-22): at __soc_pcm_hw_params() on Speaker
[623442.693446] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 1
[623442.693467]  Speaker: ASoC error (-22): at dpcm_fe_dai_hw_params() on Speaker
[623442.693495] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 6
[623445.715956] sof-audio-pci-intel-lnl 0000:00:1f.3: FW reported error: 104 - Other failure of module instance initialization request
[623445.715993] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc error for msg 0x40001000|0x1000a
[623445.716006] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to create module drc.21.1
[623445.717362] sof-audio-pci-intel-lnl 0000:00:1f.3: Failed to set up connected widgets
[623445.717371] sof-audio-pci-intel-lnl 0000:00:1f.3: sof_pcm_setup_connected_widgets: pcm2 (Speaker), dir 0: Widget list set up failed
[623445.717376] sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_pcm_component_hw_params() on 0000:00:1f.3
[623445.717412]  Speaker: ASoC error (-22): at __soc_pcm_hw_params() on Speaker
[623445.717422] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 1
[623445.717441]  Speaker: ASoC error (-22): at dpcm_fe_dai_hw_params() on Speaker
[623445.717465] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 6
[623449.461347] sof-audio-pci-intel-lnl 0000:00:1f.3: ------------[ DSP dump start ]------------
[623449.461359] sof-audio-pci-intel-lnl 0000:00:1f.3: DSP panic!
[623449.461363] sof-audio-pci-intel-lnl 0000:00:1f.3: fw_state: SOF_FW_BOOT_COMPLETE (7)
[623449.461372] sof-audio-pci-intel-lnl 0000:00:1f.3: 0x50000005: module: ROM_EXT, state: FW_ENTERED, running
[623449.461380] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware state: 0x5, status/error code: 0x0
[623449.461394] sof-audio-pci-intel-lnl 0000:00:1f.3: Core dump is not available due to invalid separator 0xc0de
[623449.461399] sof-audio-pci-intel-lnl 0000:00:1f.3: ------------[ DSP dump end ]------------
[623449.980314] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc timed out for 0x47000000|0x0
[623449.980330] sof-audio-pci-intel-lnl 0000:00:1f.3: ------------[ IPC dump start ]------------
[623449.980346] sof-audio-pci-intel-lnl 0000:00:1f.3: Host IPC initiator: 0xc7000000|0x0|0x0, target: 0x1b0a0000|0x0|0x0, ctl: 0x3
[623449.980352] sof-audio-pci-intel-lnl 0000:00:1f.3: ------------[ IPC dump end ]------------
[623449.980354] sof-audio-pci-intel-lnl 0000:00:1f.3: IPC timeout
[623449.980359] sof-audio-pci-intel-lnl 0000:00:1f.3: ctx_save IPC error: -110, proceeding with suspend
[623457.794939] sof-fix: DSP smoke test start 1790220225
[623478.810067] sof-fix: DSP smoke test start 1790220246
[623489.019489] sof-audio-pci-intel-lnl 0000:00:1f.3: FW reported error: 104 - Other failure of module instance initialization request
[623489.019526] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc error for msg 0x40001000|0x1000a
[623489.019538] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to create module drc.21.1
[623489.020959] sof-audio-pci-intel-lnl 0000:00:1f.3: Failed to set up connected widgets
[623489.020967] sof-audio-pci-intel-lnl 0000:00:1f.3: sof_pcm_setup_connected_widgets: pcm2 (Speaker), dir 0: Widget list set up failed
[623489.020972] sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_pcm_component_hw_params() on 0000:00:1f.3
[623489.020991]  Speaker: ASoC error (-22): at __soc_pcm_hw_params() on Speaker
[623489.020999] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 1
[623489.021014]  Speaker: ASoC error (-22): at dpcm_fe_dai_hw_params() on Speaker
[623489.021035] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 6
[623492.046894] sof-audio-pci-intel-lnl 0000:00:1f.3: FW reported error: 104 - Other failure of module instance initialization request
[623492.046936] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc error for msg 0x40001000|0x1000a
[623492.046962] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to create module drc.21.1
[623492.048391] sof-audio-pci-intel-lnl 0000:00:1f.3: Failed to set up connected widgets
[623492.048406] sof-audio-pci-intel-lnl 0000:00:1f.3: sof_pcm_setup_connected_widgets: pcm2 (Speaker), dir 0: Widget list set up failed
[623492.048414] sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_pcm_component_hw_params() on 0000:00:1f.3
[623492.048460]  Speaker: ASoC error (-22): at __soc_pcm_hw_params() on Speaker
[623492.048477] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 1
[623492.048499]  Speaker: ASoC error (-22): at dpcm_fe_dai_hw_params() on Speaker
[623492.048529] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 6
[623495.068632] sof-audio-pci-intel-lnl 0000:00:1f.3: FW reported error: 104 - Other failure of module instance initialization request
[623495.068662] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc error for msg 0x40001000|0x1000a
[623495.068694] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to create module drc.21.1
[623495.070052] sof-audio-pci-intel-lnl 0000:00:1f.3: Failed to set up connected widgets
[623495.070072] sof-audio-pci-intel-lnl 0000:00:1f.3: sof_pcm_setup_connected_widgets: pcm2 (Speaker), dir 0: Widget list set up failed
[623495.070086] sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_pcm_component_hw_params() on 0000:00:1f.3
[623495.070126]  Speaker: ASoC error (-22): at __soc_pcm_hw_params() on Speaker
[623495.070136] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 1
[623495.070154]  Speaker: ASoC error (-22): at dpcm_fe_dai_hw_params() on Speaker
[623495.070175] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 6
[623498.092295] sof-audio-pci-intel-lnl 0000:00:1f.3: FW reported error: 104 - Other failure of module instance initialization request
[623498.092327] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc error for msg 0x40001000|0x1000a
[623498.092349] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to create module drc.21.1
[623498.093889] sof-audio-pci-intel-lnl 0000:00:1f.3: Failed to set up connected widgets
[623498.093906] sof-audio-pci-intel-lnl 0000:00:1f.3: sof_pcm_setup_connected_widgets: pcm2 (Speaker), dir 0: Widget list set up failed
[623498.093915] sof-audio-pci-intel-lnl 0000:00:1f.3: ASoC error (-22): at snd_soc_pcm_component_hw_params() on 0000:00:1f.3
[623498.093961]  Speaker: ASoC error (-22): at __soc_pcm_hw_params() on Speaker
[623498.093976] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 1
[623498.093996]  Speaker: ASoC error (-22): at dpcm_fe_dai_hw_params() on Speaker
[623498.094024] sdw_deprepare_stream: subdevice #0-Playback: inconsistent state state 6
[623501.846231] sof-audio-pci-intel-lnl 0000:00:1f.3: ------------[ DSP dump start ]------------
[623501.846243] sof-audio-pci-intel-lnl 0000:00:1f.3: DSP panic!
[623501.846247] sof-audio-pci-intel-lnl 0000:00:1f.3: fw_state: SOF_FW_BOOT_COMPLETE (7)
[623501.846258] sof-audio-pci-intel-lnl 0000:00:1f.3: 0x50000005: module: ROM_EXT, state: FW_ENTERED, running
[623501.846267] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware state: 0x5, status/error code: 0x0
[623501.846281] sof-audio-pci-intel-lnl 0000:00:1f.3: Core dump is not available due to invalid separator 0xc0de
[623501.846285] sof-audio-pci-intel-lnl 0000:00:1f.3: ------------[ DSP dump end ]------------
[623502.364286] sof-audio-pci-intel-lnl 0000:00:1f.3: ipc timed out for 0x47000000|0x0
[623502.364303] sof-audio-pci-intel-lnl 0000:00:1f.3: ------------[ IPC dump start ]------------
[623502.364320] sof-audio-pci-intel-lnl 0000:00:1f.3: Host IPC initiator: 0xc7000000|0x0|0x0, target: 0x1b0a0000|0x0|0x0, ctl: 0x3
[623502.364326] sof-audio-pci-intel-lnl 0000:00:1f.3: ------------[ IPC dump end ]------------
[623502.364329] sof-audio-pci-intel-lnl 0000:00:1f.3: IPC timeout
[623502.364333] sof-audio-pci-intel-lnl 0000:00:1f.3: ctx_save IPC error: -110, proceeding with suspend
[623503.910863] sof-audio-pci-intel-lnl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [xe])
[623503.920483] sof-audio-pci-intel-lnl 0000:00:1f.3: use msi interrupt mode
[623503.944110] sof-audio-pci-intel-lnl 0000:00:1f.3: hda codecs found, mask 4
[623503.944127] sof-audio-pci-intel-lnl 0000:00:1f.3: BT link detected in NHLT tables: 0x0
[623503.944136] sof-audio-pci-intel-lnl 0000:00:1f.3: DMICs detected in NHLT tables: 0
[623503.947044] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware paths/files for ipc type 1:
[623503.947057] sof-audio-pci-intel-lnl 0000:00:1f.3:  Firmware file:     intel/sof-ipc4/lnl/sof-lnl.ri
[623503.947061] sof-audio-pci-intel-lnl 0000:00:1f.3:  Firmware lib path: intel/sof-ipc4-lib/lnl
[623503.947063] sof-audio-pci-intel-lnl 0000:00:1f.3:  Topology file:     intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1.tplg
[623503.948837] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
[623504.236586] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-openmodules.ri (-2)
[623504.236613] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-openmodules.ri (-2)
[623504.236624] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-openmodules.ri (-2)
[623504.236647] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-debug.ri (-2)
[623504.236657] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-debug.ri (-2)
[623504.236666] sof-audio-pci-intel-lnl 0000:00:1f.3: firmware: failed to load intel/sof-ipc4/lnl/sof-lnl-debug.ri (-2)
[623504.239129] sof-audio-pci-intel-lnl 0000:00:1f.3: Booted firmware version: 2.14.1.1
[623504.242362] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[623504.243188] sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred
[623504.255210] sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
[623504.273241] input: sof-soundwire Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input36
[623504.273388] input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input37
[623504.273498] input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input38
[623504.273608] input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input39
[623512.970490] sof-fix: DSP smoke test start 1790220280

Mentioning the people on the same hardware or who asked for feedback in the earlier threads, in case this explains what you are seeing: @kv2019i @ujfalusi @bardliao @likewhatevs @m2freem @wee-beybrice @pma1 @arkybruh7

Activity

  1. ujfalusi commented on Sep 24, 2026

    @ujfalusi
    Contributor

    The init module message for DRC is failing, it could be malformed init message, but not sure.

    It is unlikely that the kernel tries to load the library again - it would fail with that. On LNL we assume by default that full context restore is enabled by default, the fw can tell us if it is not supporting this and this is when the flag comes into play.

    Could you rename
    sof-dyndbg.conf.txt
    to sof-dyndbg.conf and put it in the /etc/modprobe.d/ folder, then reboot the system and capture the dmesg of the boot, then the aplay to speaker?
    The sof-fix: DSP smoke test start are your doings in the log?

    Next would be to check what the fw reports:
    options snd_sof sof_debug=1 to /etc/modprobe.d/sof-debug.conf, reboot

    The from the sof firmware sources run tools/mtrace/mtrace-reader.py as root and execute the playback.

    capture these to a txt file and attach them, it is easier to parse for me.

    Can you also test with newer kernel?

    @singalsu, FYI

  2. lgirdwood commented on Sep 25, 2026

    @lgirdwood
    Member

    @deep-name can you also try v2.15, just releases last week.

  3. deep-name commented on Sep 30, 2026

    @deep-name
    Author

    Thanks both. Yes, the sof-fix: ... lines are my own markers written to /dev/kmsg around each step; ignore them. Here is the data. Same machine as above, kernel 6.16.12, sof-bin 2025.12.2 base + drc.llext (md5 9d66bffa... / 9456b541...) with the rebuilt 4/5/6 topology that includes DRC, unless stated otherwise. Logs: https://gist.github.com/deep-name/b9c4979fb9a4a1a572c7c6aca8667c3f (private lines stripped; the full 40 MB dyndbg dmesg and the full mtrace are available on request).

    1. Driver dynamic debug (your sof-dyndbg.conf). capture1-dyndbg.txt: dyndbg enabled at runtime, full unbind/bind of 0000:00:1f.3 (so the probe is logged), wait for the runtime suspend, one aplay -D plughw:0,2. capture2-bootlog.txt: a boot with the conf in /etc/modprobe.d plus sof_debug=1 (log_buf_len=16M so nothing wrapped). capture2-dmesg.txt: the same rebind + resume + playback with dyndbg on.

    2. Firmware trace (options snd_sof sof_debug=1, tools/mtrace/mtrace-reader.py during the playback), capture2-mtrace.txt. This is the part that explains the 104. Around the runtime resume:

    *** Booting Zephyr OS build v4.2.0-3634-g5bef4a9d6264 ***
    [    0.000000] <inf> lib_manager: llext_manager_restore_from_dram: restored 1 modules with 1 LLEXT
    [    0.000000] <inf> main: sof_app_main: SOF initialized
    [    0.000008] <inf> lib_manager: lib_manager_load_library: loaded library id: 1
    [  513.734256] <inf> eq_iir: eq_iir_init: comp:1 0x12 eq_iir_init()
    [  513.735475] <inf> eq_fir: eq_fir_init: comp:1 0x13 eq_fir_init()
    [  513.736143] <err> lib_manager: llext_manager_link_single: Name mismatch DRC vs. 
    [  513.736148] <err> lib_manager: lib_manager_module_create: lib_manager_allocate_module() failed!
    [  513.736158] <err> ipc: ipc4_init_module_instance: error: failed to init module 1000 : 0
    [  513.736163] <err> ipc: ipc_cmd: ipc4: MODULE_MSG failed with err 104
    

    and the kernel side of the same seconds (capture2-dmesg.txt):

    [  513.564306] snd_sof_intel_hda_common:hda_dsp_state_log: ... Current DSP power state: D0I0
    [  513.566395] snd_sof_intel_hda_common:hda_dsp_cl_boot_firmware: ... IMR restore supported, booting from IMR directly
    [  513.638754] snd_sof:snd_sof_run_firmware: ... firmware boot complete
    [  513.639435] snd_sof_intel_hda_common:hda_dsp_ipc4_load_library: ... FW Poll Status: reg[0x1f0]=0x409800 successful
    [  513.735948] snd_sof:sof_ipc4_widget_setup: ... Create widget drc.21.1 (pipe 21) - ID 4096, instance 0, core 0
    [  513.736310] sof-audio-pci-intel-lnl 0000:00:1f.3: FW reported error: 104 - Other failure of module instance initialization request
    [  513.736345] sof-audio-pci-intel-lnl 0000:00:1f.3: failed to create module drc.21.1
    

    So on this kernel the library is loaded twice per fast resume: the firmware restores it from DRAM at boot (restored 1 modules with 1 LLEXT), then the kernel goes through hda_dsp_ipc4_load_library() again (reload path; the 6.16 skip condition is booted_from_imr && fw_context_save, and the Linux production build has CONFIG_ADSP_IMR_CONTEXT_SAVE=n), the firmware accepts it (loaded library id: 1 again, 8 us after boot), and the next drc.21.1 init dies in llext_manager_link_single with an empty module name. The first boot after bind (single load, loaded library id: 1 only) and a full boot after a crash both work; every IMR resume fails. Kernel 6.17's ace9b3daf2b4 skips the re-send when FW_READY carries SOF_IPC4_FW_READY_LIB_RESTORED; I could not find that bit being set in v2.14.1's ipc_boot_complete_msg(), so I am not sure a newer kernel alone is enough with this firmware; you will know. Either way a second LOAD_LIBRARY for an id the firmware already restored should probably be rejected or ignored rather than corrupt the LLEXT bookkeeping.

    3. SOF v2.15 (sof-bin 2026.09.1 intel-signed sof-lnl.ri + drc.llext + its own sof-lnl-rt713-l0-rt1318-l1.tplg, which already has the 4/5/6 HDMI ids), same 6.16.12 kernel, capture3-v215.txt:

    phase condition result
    A DSP kept awake (power/control=on after probe) OK
    B after the first runtime fast resume DSP oops
    B3 after the crash-forced full boot OK
    [1212304.397235] Loaded firmware library: ADSPFW, version: 2.15.0.1
    [1212304.714323] Loaded firmware library: ADSPFW, version: 2.15.0.1
    [1212343.255303] DSP panic!
    [1212343.255359] error: Exception Cause: LoadStorePIFDataErrorCause, Synchronous PIF data error during LoadStore access
    [1212343.255361] EXCCAUSE 0x0000000d EXCVADDR 0x00000004 PS 0x00060b20 SAR 0x00000012
    [1212343.255364] EPC1     0xa008b320 ...
    [1212343.755034] failed to create module drc.21.1
    

    Same trigger, and v2.15 turns the 104 into a load from address 4 while creating drc.21.1 (register dump in the file).

    4. Newer kernel: not done yet, will follow (Debian backports 7.0.13).

    One more thing that may explain why this is rarely reported: TLP sets RUNTIME_PM_ON_AC=on, so on AC power 0000:00:1f.3 stays at power/control=on and the DSP never runtime-suspends; the failure only shows on battery or after a rebind. All tests above forced auto.

  4. ujfalusi commented on Oct 1, 2026

    @ujfalusi
    Contributor

    @deep-name , found it and I'm sorry... With latest kernel I see this with debug on my LNL:
    on first boot:

    [    3.337820] [zebera] sof_ipc4_query_fw_configuration: fw_context_save: 0
    

    next DSP boot:

    [   41.199023] [zebera] ipc4_fw_ready: fw_context_save: 0, libraries_restored: 1
    

    libraries_restored is added by:
    cec49fa47bcc ("ASoC: SOF: ipc4-priv: Add kernel doc for fw_context_save of sof_ipc4_fw_data")
    ace9b3daf2b4 ("ASoC: SOF: ipc4/Intel: Add support for library restore firmware functionality")
    and it is in v6.17, not in v6.16..

    Can you try these backported patches?
    0001-ASoC-SOF-ipc4-priv-Add-kernel-doc-for-fw_context_sav.patch
    0002-ASoC-SOF-ipc4-Intel-Add-support-for-library-restore-.patch

    But 6.16 is not LTS kernel and it is unlikely that upstream will accept patches for it (v6.16.12 is the latest tag from a year ago).

    Can you ask your distribution (debian, right?) to pick the two patches for their kernel?

    Other option is to move to a newer kernel, which have these patches, 6.18 is LTS.

    I think the partial context restore was not supposed to be enabled for LNL, only for newer platforms...

  5. deep-name commented on Oct 2, 2026

    @deep-name
    Author

    Thanks @ujfalusi, that matches what the trace showed; no apology needed, the data is what it is.

    Newer kernel: Debian's trixie-backports kernel is now 7.1.13, which contains cec49fa47bcc + ace9b3daf2b4; it is installed here and I will run the same awake / fast-resume test on it with the 2.14.1 set and the DRC topology and post the result in the next day or so. I did not build a patched 6.16: it is the previous backports kernel and already superseded there, so a kernel that carries the two commits is the realistic test for this distribution.

    Where this bites distributions: the kernels that lack the two commits and are still shipped are the LTS ones. Debian 13 stable is on 6.12.y (6.12.111 today), Ubuntu 24.04 HWE and others sit on similar bases. Debian has meanwhile built firmware-sof-signed 2026.09.1-1 (SOF v2.15) in unstable and ships 2025.12.2-2 (v2.14.1) in testing, so "LTS kernel + 2.14/2.15 firmware" is a combination users get as soon as they install the newer firmware package, for example to pick up a topology fix for their machine. With v2.15 the same trigger ends in a firmware oops (load from address 4, see the capture above) rather than error 104, so it is not getting more benign. Two questions:

    1. Would you consider sending the two commits to stable for 6.12.y? They look like clean cherry-picks. That would fix Debian 13 and every other 6.12-based distribution through normal point releases. I will file the Debian bug referencing this issue in any case.
    2. You mention partial context restore was not meant to be enabled for LNL. If the firmware stopped advertising/using library restore on LNL, or rejected a second LOAD_LIBRARY for an id it has already restored, kernels without the two commits would be safe as well. Is that something a 2.14.x / 2.15.x firmware update could do? It would help far more users than a kernel backport alone.

    For the record, the #10958 HDMI id fix is still missing from stable-v2.14 and the 2025.12.x sof-bin series that Debian testing ships, so the DMIC-less rt713-l0-rt1318-l1 board does not come up at all with those files.

  6. ujfalusi commented on Oct 2, 2026

    @ujfalusi
    Contributor

    @deep-name, backport to v6.12: https://lore.kernel.org/stable/20261002102353.26919-1-peter.ujfalusi@linux.intel.com/T/#m317dc2dbab76fd53063b652629bf944ac6551883
    In theory LNL can be used with that kernel.
    Older kernels does not have support for LNL where this is relevant.

    The limited context save and restore was developed for NVL to save time on it's a bit slower IMR access on resume, instead of full context, we only save the must be saved parts of the memory and save 100+ ms time. Also Linux does not need full context save.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions