Repository navigation
rmmod/modprobe machine driver fails to reload topology #3535
Copy link
Copy link
Closed
Labels
SDWApplies to SoundWire bus for codec connectionApplies to SoundWire bus for codec connection
Description
The following sequence generates the log below
rmmod snd_soc_sof_sdw
modprobe snd_soc_sof_sdw
[ 172.681893] sof_sdw sof_sdw: Entry mc_probe
[ 172.681898] sof_sdw sof_sdw: quirk realtek,jack-detect-source 2
[ 172.681901] sof_sdw sof_sdw: quirk SOF_SDW_TGL_HDMI enabled
[ 172.681906] sof_sdw sof_sdw: sdw 4, ssp 0, dmic 0, hdmi 4
[ 172.681919] sof_sdw sof_sdw: create dai link SDW1-Playback, id 0
[ 172.682037] sof_sdw sof_sdw: create dai link SDW1-Capture, id 1
[ 172.682049] sof_sdw sof_sdw: create dai link SDW2-Playback, id 2
[ 172.682060] sof_sdw sof_sdw: create dai link SDW0-Capture, id 4
[ 172.682067] sof_sdw sof_sdw: create dai link iDisp1, id 5
[ 172.682073] sof_sdw sof_sdw: create dai link iDisp2, id 6
[ 172.682078] sof_sdw sof_sdw: create dai link iDisp3, id 7
[ 172.682083] sof_sdw sof_sdw: create dai link iDisp4, id 8
[ 172.682222] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG: DMA_POSITION
[ 172.682268] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG: DMA_POSITION
[ 172.682677] sof-audio-pci-intel-tgl 0000:00:1f.3: loading topology:intel/sof-tplg/sof-tgl-rt715-rt711-rt1308-mono.tplg
[ 172.682765] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:20:0 Kernel ABI 3:19:1
[ 172.682770] sof-audio-pci-intel-tgl 0000:00:1f.3: warn: topology ABI is more recent than kernel
[ 172.682777] sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: ready widget id 44 pipe 1 type 23 name : PCM0P stream Passthrough Playback 0
[ 172.682791] sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: load control type 1 name : 1 Master Playback Volume
[ 172.682800] sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: load kcontrol index 45 chans 2
[ 172.682805] sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: ready widget id 45 pipe 1 type 6 name : PGA1.0 stream none
[ 172.682813] sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: ready widget id 46 pipe 1 type 31 name : BUF1.0 stream none
[ 172.682820] sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: ready widget id 47 pipe 1 type 31 name : BUF1.1 stream none
[ 172.682827] sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: ready widget id 48 pipe 1 type 27 name : ALH258.OUT stream SDW1-Playback
[ 172.682832] sof-audio-pci-intel-tgl 0000:00:1f.3: error: can't find BE for DAI ALH258.OUT
[ 172.682839] sof-audio-pci-intel-tgl 0000:00:1f.3: error: failed to add widget id 0 type 27 name : ALH258.OUT stream SDW1-Playback
[ 172.682845] sof_sdw sof_sdw: ASoC: failed to load widget ALH258.OUT
[ 172.682849] sof_sdw sof_sdw: ASoC: topology: could not load header: -22
[ 172.682858] sof-audio-pci-intel-tgl 0000:00:1f.3: error: tplg component load failed -22
[ 172.682871] sof-audio-pci-intel-tgl 0000:00:1f.3: error: failed to load DSP topology -22
[ 172.682875] sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -22
[ 172.682921] sof_sdw sof_sdw: ASoC: failed to instantiate card -22
[ 172.683450] sof_sdw sof_sdw: snd_soc_register_card failed -22
[ 172.683455] sof_sdw: probe of sof_sdw failed with error -22
[ 173.182329] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG: DMA_POSITION
[ 173.182369] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG: DMA_POSITION
@bardliao @RanderWang any idea what could be wrong? Machine parameters maybe?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
SDWApplies to SoundWire bus for codec connectionApplies to SoundWire bus for codec connection
Activity
bardliao commentedon Mar 22, 2022
@plbossart We check if (!cpu_dai->capture_widget) and if (!cpu_dai->playback_widget) in sof_connect_dai_widget. But we don't set cpu_dai->capture_widget and cpu_dai->playback_widget = NULL in
sof_widget_unload.That's the reason of the
can't find BE for DAI ALH258.OUTerror.However, I will see below kernel oops after setting cpu_dai->capture_widget and cpu_dai->playback_widget = NULL in
sof_widget_unload.We must miss something.
bardliao commentedon Mar 22, 2022
And this is not SDW specific. I can see the same issue on nocodec mode.
bardliao commentedon Mar 22, 2022
@plbossart The
kernel NULL pointer dereferencehappens at snd_hda_codec_set_name(hcodec, hcodec->preset->name) wherehcodec->presetis NULL.[-]SoundWire: rmmod/modprobe snd_soc_sof_sdw fails [/-][+]SoundWire: rmmod/modprobe snd_soc_sof_sdw fails to reload topology[/+][-]SoundWire: rmmod/modprobe snd_soc_sof_sdw fails to reload topology[/-][+]rmmod/modprobe machine driver fails to reload topology[/+]ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
4 remaining items
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload
ASoC: SOF: topology: cleanup dailinks on widget unload