linux icon indicating copy to clipboard operation
linux copied to clipboard

Audio driver fails to load on Meteor Lake reference board

Open JianpengChang opened this issue 10 months ago • 14 comments

Hello,

I'm doing some tests on the MTL RVP, there is something wrong with the firmware of sof, the error is missing sof-mtl-rt711-2ch.tplg. But there is no sof-mtl-rt711-2ch.tplg in any version of sof-bin. I have tried the latest Linux kernel, and got the same error. But if I rename the sof-mtl-rt711-4ch.tplg which I can see in the latest version v2025.1 of sof-bin to sof-mtl-rt711-2ch.tplg, it works. I have read the similar issue #4880, so is this a similar error that the RVP configuration is wrong makes it point to 2ch.tplg?. Hopefully to get any guidance.

Environment:

  • MTL-P DDR5 SODIMM SBS RVP
  • Intel(R) Core(TM) Ultra 7 155H
  • linux 6.6.78-yocto-standard
root@intel-x86-64:~# cat /sys/bus/acpi/devices/*/adr | grep 025d
0x000030025d071101
0x000331025d131601
0x000230025d131601
0x000130025d071401

root@intel-x86-64:~# dmesg | grep -E "sof-|snd"
[   44.848400] bus: 'pci': add driver snd_hda_intel
[   44.848464] bus: 'pci': __driver_probe_device: matched device 0000:00:1f.3 with driver snd_hda_intel
[   44.848472] bus: 'pci': really_probe: probing driver snd_hda_intel with device 0000:00:1f.3
[   44.848496] snd_hda_intel 0000:00:1f.3: no default pinctrl state
[   44.848518] snd_hda_intel 0000:00:1f.3: vgaarb: pci_notify
[   44.848555] snd_hda_intel 0000:00:1f.3: runtime IRQ mapping not provided by arch
[   44.848561] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   44.858119] snd_hda_intel 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[   44.867171] snd_hda_intel: probe of 0000:00:1f.3 rejects match -19
[   44.867195] snd_hda_intel 0000:00:1f.3: vgaarb: pci_notify
[   45.320988] Registering platform device 'snd-soc-dummy'. Parent at platform
[   45.321007] device: 'snd-soc-dummy': device_add
[   45.321048] bus: 'platform': add device snd-soc-dummy
[   45.321208] PM: Adding info for platform:snd-soc-dummy
[   45.321345] bus: 'platform': add driver snd-soc-dummy
[   45.321427] bus: 'platform': __driver_probe_device: matched device snd-soc-dummy with driver snd-soc-dummy
[   45.321438] bus: 'platform': really_probe: probing driver snd-soc-dummy with device snd-soc-dummy
[   45.321482] snd-soc-dummy snd-soc-dummy: no default pinctrl state
[   45.321802] driver: 'snd-soc-dummy': driver_bound: bound to device 'snd-soc-dummy'
[   45.321882] bus: 'platform': really_probe: bound device snd-soc-dummy to driver snd-soc-dummy
[   45.517689] bus: 'pci': add driver sof-audio-pci-intel-mtl
[   45.518106] bus: 'pci': __driver_probe_device: matched device 0000:00:1f.3 with driver sof-audio-pci-intel-mtl
[   45.518119] bus: 'pci': really_probe: probing driver sof-audio-pci-intel-mtl with device 0000:00:1f.3
[   45.518155] sof-audio-pci-intel-mtl 0000:00:1f.3: no default pinctrl state
[   45.518182] sof-audio-pci-intel-mtl 0000:00:1f.3: vgaarb: pci_notify
[   45.518215] sof-audio-pci-intel-mtl 0000:00:1f.3: runtime IRQ mapping not provided by arch
[   45.518223] sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   45.528298] sof-audio-pci-intel-mtl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[   45.538408] sof-audio-pci-intel-mtl 0000:00:1f.3: enabling device (0000 -> 0002)
[   45.547753] sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   45.548272] driver: 'sof-audio-pci-intel-mtl': driver_bound: bound to device '0000:00:1f.3'
[   45.557195] sof-audio-pci-intel-mtl 0000:00:1f.3: vgaarb: pci_notify
[   45.557422] bus: 'pci': really_probe: bound device 0000:00:1f.3 to driver sof-audio-pci-intel-mtl
[   45.558327] sof-audio-pci-intel-mtl 0000:00:1f.3: trying to bring up adev
[   45.558338] sof-audio-pci-intel-mtl 0000:00:1f.3: Looking for component 0
[   45.558344] sof-audio-pci-intel-mtl 0000:00:1f.3: master has incomplete components
[  109.472305] sof-audio-pci-intel-mtl 0000:00:1f.3: couldn't bind with audio component
[  109.480277] sof-audio-pci-intel-mtl 0000:00:1f.3: init of i915 and HDMI codec failed
[  109.491904] sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
[  109.499349] sof-audio-pci-intel-mtl 0000:00:1f.3: enabling bus mastering
[  109.509078] sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[  109.516612] sof-audio-pci-intel-mtl 0000:00:1f.3: no hda codecs found!
[  109.578730] sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.12.0.1
[  109.707221] sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.12.0.1
[  109.715888] device: 'snd_sof.hda-probes.0': device_add
[  109.715927] bus: 'auxiliary': add device snd_sof.hda-probes.0
[  109.716356] PM: Adding info for auxiliary:snd_sof.hda-probes.0
[  109.734545] bus: 'auxiliary': add driver snd_sof_probes
[  109.734605] bus: 'auxiliary': __driver_probe_device: matched device snd_sof.hda-probes.0 with driver snd_sof_probes
[  109.734618] bus: 'auxiliary': really_probe: probing driver snd_sof_probes with device snd_sof.hda-probes.0
[  109.734663] snd_sof_probes snd_sof.hda-probes.0: no default pinctrl state
[  109.734726] snd_sof_probes: probe of snd_sof.hda-probes.0 rejects match -6
[  109.757394] sof-audio-pci-intel-mtl 0000:00:1f.3: Direct firmware load for intel/sof-ace-tplg/sof-mtl-rt711-2ch.tplg failed with error -2
[  109.769799] sof-audio-pci-intel-mtl 0000:00:1f.3: error: tplg request firmware intel/sof-ace-tplg/sof-mtl-rt711-2ch.tplg failed err: -2
[  109.781942] sof-audio-pci-intel-mtl 0000:00:1f.3: you may need to download the firmware from https://github.com/thesofproject/sof-bin/
[  109.793965] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to load DSP topology -2
[  109.801908] sof-audio-pci-intel-mtl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -2
[  109.818435] sof_sdw sof_sdw: snd_soc_register_card failed -2

Using Kernel 6.14

root@intel-x86-64:~# uname -a
Linux intel-x86-64 6.14.0-rc7-yocto-standard+ #1 SMP PREEMPT_DYNAMIC Tue Mar 18 16:44:59 CST 2025 x86_64 GNU/Linux
root@intel-x86-64:~# dmesg | grep -E "sof-|snd"
[   51.752163] snd_hda_codec_hdmi ehdaudio0D2: no default pinctrl state
[   51.752308] snd_hda_codec_hdmi ehdaudio0D2: driver: 'snd_hda_codec_hdmi': driver_bound: bound to device
[   51.752771] snd_hda_codec_hdmi ehdaudio0D2: bus: 'hdaudio': really_probe: bound device to driver snd_hda_codec_hdmi
[   51.777591] sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 4
[   51.784583] sof-audio-pci-intel-mtl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
[   51.792836] sof-audio-pci-intel-mtl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
[   51.800731] sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[   51.845709] sof-audio-pci-intel-mtl 0000:00:1f.3: SOF firmware and/or topology file not found.
[   51.854752] sof-audio-pci-intel-mtl 0000:00:1f.3: Supported default profiles
[   51.861518] sof-audio-pci-intel-mtl 0000:00:1f.3: - ipc type 1 (Requested):
[   51.883223] sof-audio-pci-intel-mtl 0000:00:1f.3:  Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
[   51.891896] sof-audio-pci-intel-mtl 0000:00:1f.3:  Topology file: intel/sof-ace-tplg/sof-mtl-rt711-2ch.tplg
[   51.901621] sof-audio-pci-intel-mtl 0000:00:1f.3: Check if you have 'sof-firmware' package installed.
[   51.910796] sof-audio-pci-intel-mtl 0000:00:1f.3: Optionally it can be manually downloaded from:
[   51.919526] sof-audio-pci-intel-mtl 0000:00:1f.3:    https://github.com/thesofproject/sof-bin/
[   51.976415] sof-audio-pci-intel-mtl 0000:00:1f.3: Dropping the link to 0000:00:02.0
[   51.976932] sof-audio-pci-intel-mtl 0000:00:1f.3: error: sof_probe_work failed err: -2
root@intel-x86-64:~# ls -l /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-*                                                                                                                                         
-rw-rw-r-- 1 1001 1001 59319 Jan 31 16:14 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-4ch.tplg
-rw-rw-r-- 1 1001 1001 67502 Jan 31 16:14 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-l0-rt1316-l23-rt714-l1.tplg
-rw-rw-r-- 1 1001 1001 77367 Jan 31 16:14 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-l0-rt1316-l3-2ch.tplg
-rw-rw-r-- 1 1001 1001 76751 Jan 31 16:14 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-l0-rt1316-l3-4ch.tplg
-rw-rw-r-- 1 1001 1001 53426 Jan 31 16:14 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-l0-rt1316-l3.tplg

After I create a link which point to sof-mtl-rt711-4ch.tplg. The soundwire works well on 6.14 kernel, but the rename doesn't work on 6.6.78.

root@intel-x86-64:~# ls -l /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-*
lrwxrwxrwx 1 root root    22 Mar 18 08:51 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-2ch.tplg -> sof-mtl-rt711-4ch.tplg
-rw-rw-r-- 1 1001 1001 59319 Jan 31 16:14 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-4ch.tplg
root@intel-x86-64:~# dmesg | grep -E "sof-|snd"
[   53.046561] sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 4
[   53.059107] sof-audio-pci-intel-mtl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
[   53.067314] sof-audio-pci-intel-mtl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
[   53.075191] sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[   53.116675] sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware paths/files for ipc type 1:
[   53.124682] sof-audio-pci-intel-mtl 0000:00:1f.3:  Firmware file:     intel/sof-ipc4/mtl/sof-mtl.ri
[   53.133696] sof-audio-pci-intel-mtl 0000:00:1f.3:  Firmware lib path: intel/sof-ipc4-lib/mtl
[   53.149214] sof-audio-pci-intel-mtl 0000:00:1f.3:  Topology file:     intel/sof-ace-tplg/sof-mtl-rt711-2ch.tplg
[   53.150524] sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.12.0.1
[   53.317718] sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.12.0.1
root@intel-x86-64:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

JianpengChang avatar Mar 18 '25 09:03 JianpengChang

@bardliao are we missing a 2ch dmic topology variant in sof-bin?

ranj063 avatar Mar 20 '25 00:03 ranj063

@JianpengChang Can you try sof-mtl-rt711-2ch.zip? The PR is https://github.com/thesofproject/sof/pull/9910

bardliao avatar Mar 20 '25 02:03 bardliao

@bardliao, it work on the latest kernel 6.14

root@intel-x86-64:~# uname -a
Linux intel-x86-64 6.14.0-rc7-yocto-standard+ #1 SMP PREEMPT_DYNAMIC Tue Mar 18 16:44:59 CST 2025 x86_64 GNU/Linux
root@intel-x86-64:~# ls /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-* -al
-rw-r--r-- 1 root root 59319 Mar 20 06:10 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-2ch.tplg
-rw-rw-r-- 1 1001 1001 59319 Jan 31 16:14 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-4ch.tplg
root@intel-x86-64:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@intel-x86-64:~# aplay -Dhw:0,0 kgyl.wav
Playing WAVE 'kgyl.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
^CAborted by signal Interrupt...

But, it doesn't work on 6.6.78, it seems that I need fetch some patches. Here is the error log:

root@intel-x86-64:~# uname -a
Linux intel-x86-64 6.6.78-yocto-standard #1 SMP PREEMPT_DYNAMIC Mon Mar 10 08:28:19 UTC 2025 x86_64 GNU/Linux
[  109.472886] sof-audio-pci-intel-mtl 0000:00:1f.3: couldn't bind with audio component
[  109.480742] sof-audio-pci-intel-mtl 0000:00:1f.3: init of i915 and HDMI codec failed
[  109.491657] sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
[  109.511412] sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[  109.518942] sof-audio-pci-intel-mtl 0000:00:1f.3: no hda codecs found!
[  109.558869] sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.12.0.1
[  109.689084] sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.12.0.1
[  109.735880] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:0
[  109.746076] sof-audio-pci-intel-mtl 0000:00:1f.3: error: can't connect DAI dai-copier.HDA.iDisp1.playback stream iDisp1
[  109.756809] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to add widget id 0 type 27 name : dai-copier.HDA.iDisp1.playback stream iDisp
1
[  109.770089] sof_sdw sof_sdw: ASoC: failed to load widget dai-copier.HDA.iDisp1.playback
[  109.778058] sof_sdw sof_sdw: ASoC: topology: could not load header: -22
[  109.784826] sof-audio-pci-intel-mtl 0000:00:1f.3: error: tplg component load failed -22
[  109.792816] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to load DSP topology -22
[  109.800862] sof-audio-pci-intel-mtl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -22
[  109.810937] sof_sdw sof_sdw: ASoC: failed to instantiate card -22
[  109.817721] sof_sdw sof_sdw: snd_soc_register_card failed -22
[  109.824061] sof_sdw: probe of sof_sdw failed with error -22

JianpengChang avatar Mar 20 '25 06:03 JianpengChang

@JianpengChang Can you renamesof-dyndbg.conf.txt to sof-dyndbg.conf and put it in the /etc/modprobe.d/ folder and share the full dmesg log? It looks like you need to update your display driver. But I don't know is there other error in the dmesg.

May I know why you need to use the 6.6.78 kernel?

bardliao avatar Mar 20 '25 10:03 bardliao

@JianpengChang Can you check if DMIC capture work well?

bardliao avatar Mar 20 '25 11:03 bardliao

@bardliao, it work on the latest kernel 6.14

root@intel-x86-64:~# uname -a
Linux intel-x86-64 6.14.0-rc7-yocto-standard+ #1 SMP PREEMPT_DYNAMIC Tue Mar 18 16:44:59 CST 2025 x86_64 GNU/Linux
root@intel-x86-64:~# ls /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-* -al
-rw-r--r-- 1 root root 59319 Mar 20 06:10 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-2ch.tplg
-rw-rw-r-- 1 1001 1001 59319 Jan 31 16:14 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-4ch.tplg
root@intel-x86-64:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@intel-x86-64:~# aplay -Dhw:0,0 kgyl.wav
Playing WAVE 'kgyl.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
^CAborted by signal Interrupt...

But, it doesn't work on 6.6.78, it seems that I need fetch some patches. Here is the error log:

root@intel-x86-64:~# uname -a
Linux intel-x86-64 6.6.78-yocto-standard #1 SMP PREEMPT_DYNAMIC Mon Mar 10 08:28:19 UTC 2025 x86_64 GNU/Linux
[  109.472886] sof-audio-pci-intel-mtl 0000:00:1f.3: couldn't bind with audio component
[  109.480742] sof-audio-pci-intel-mtl 0000:00:1f.3: init of i915 and HDMI codec failed
[  109.491657] sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
[  109.511412] sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[  109.518942] sof-audio-pci-intel-mtl 0000:00:1f.3: no hda codecs found!
[  109.558869] sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.12.0.1
[  109.689084] sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.12.0.1
[  109.735880] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:0
[  109.746076] sof-audio-pci-intel-mtl 0000:00:1f.3: error: can't connect DAI dai-copier.HDA.iDisp1.playback stream iDisp1
[  109.756809] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to add widget id 0 type 27 name : dai-copier.HDA.iDisp1.playback stream iDisp
1
[  109.770089] sof_sdw sof_sdw: ASoC: failed to load widget dai-copier.HDA.iDisp1.playback
[  109.778058] sof_sdw sof_sdw: ASoC: topology: could not load header: -22
[  109.784826] sof-audio-pci-intel-mtl 0000:00:1f.3: error: tplg component load failed -22
[  109.792816] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to load DSP topology -22
[  109.800862] sof-audio-pci-intel-mtl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -22
[  109.810937] sof_sdw sof_sdw: ASoC: failed to instantiate card -22
[  109.817721] sof_sdw sof_sdw: snd_soc_register_card failed -22
[  109.824061] sof_sdw: probe of sof_sdw failed with error -22

The new topologies wont work with the older kernel because we use partial matching for the stream names.

ranj063 avatar Mar 20 '25 17:03 ranj063

@JianpengChang Can you renamesof-dyndbg.conf.txt to sof-dyndbg.conf and put it in the /etc/modprobe.d/ folder and share the full dmesg log? It looks like you need to update your display driver. But I don't know is there other error in the dmesg.

May I know why you need to use the 6.6.78 kernel?

alsa-info.txt dmesg.txt

It's the strategy of Yocto. They are maintaining different versions of kernel, base on the upstream to do some backports and fixes. Usually we don't use the latest kernel. It's not inconvenient for me to check DMIC today, really sorry.

JianpengChang avatar Mar 21 '25 01:03 JianpengChang

@bardliao, it work on the latest kernel 6.14

root@intel-x86-64:~# uname -a
Linux intel-x86-64 6.14.0-rc7-yocto-standard+ #1 SMP PREEMPT_DYNAMIC Tue Mar 18 16:44:59 CST 2025 x86_64 GNU/Linux
root@intel-x86-64:~# ls /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-* -al
-rw-r--r-- 1 root root 59319 Mar 20 06:10 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-2ch.tplg
-rw-rw-r-- 1 1001 1001 59319 Jan 31 16:14 /lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-4ch.tplg
root@intel-x86-64:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@intel-x86-64:~# aplay -Dhw:0,0 kgyl.wav
Playing WAVE 'kgyl.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
^CAborted by signal Interrupt...

But, it doesn't work on 6.6.78, it seems that I need fetch some patches. Here is the error log:

root@intel-x86-64:~# uname -a
Linux intel-x86-64 6.6.78-yocto-standard #1 SMP PREEMPT_DYNAMIC Mon Mar 10 08:28:19 UTC 2025 x86_64 GNU/Linux
[  109.472886] sof-audio-pci-intel-mtl 0000:00:1f.3: couldn't bind with audio component
[  109.480742] sof-audio-pci-intel-mtl 0000:00:1f.3: init of i915 and HDMI codec failed
[  109.491657] sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
[  109.511412] sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[  109.518942] sof-audio-pci-intel-mtl 0000:00:1f.3: no hda codecs found!
[  109.558869] sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.12.0.1
[  109.689084] sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.12.0.1
[  109.735880] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:0
[  109.746076] sof-audio-pci-intel-mtl 0000:00:1f.3: error: can't connect DAI dai-copier.HDA.iDisp1.playback stream iDisp1
[  109.756809] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to add widget id 0 type 27 name : dai-copier.HDA.iDisp1.playback stream iDisp
1
[  109.770089] sof_sdw sof_sdw: ASoC: failed to load widget dai-copier.HDA.iDisp1.playback
[  109.778058] sof_sdw sof_sdw: ASoC: topology: could not load header: -22
[  109.784826] sof-audio-pci-intel-mtl 0000:00:1f.3: error: tplg component load failed -22
[  109.792816] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to load DSP topology -22
[  109.800862] sof-audio-pci-intel-mtl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -22
[  109.810937] sof_sdw sof_sdw: ASoC: failed to instantiate card -22
[  109.817721] sof_sdw sof_sdw: snd_soc_register_card failed -22
[  109.824061] sof_sdw: probe of sof_sdw failed with error -22

The new topologies wont work with the older kernel because we use partial matching for the stream names.

Do we have a plan to support older version? If not, this means we have to update kernel or backport, if a tplg is missing again, am right?

Really thanks for your replay. @ranj063 @bardliao

JianpengChang avatar Mar 21 '25 01:03 JianpengChang

Not sure if you put sof-dyndbg.conf.txt to the /etc/modprobe.d/ folder properly. It seems there is no required debug log in your dmesg. I removed the iDisp devices from the topology. sof-mtl-rt711-2ch-noHDMI.zip Hope it help.

bardliao avatar Mar 21 '25 02:03 bardliao

It works but the HDMI codec still failed.

root@intel-x86-64:~# [  113.572733] sof-audio-pci-intel-mtl 0000:00:1f.3: couldn't bind with audio component
[  113.580760] sof-audio-pci-intel-mtl 0000:00:1f.3: init of i915 and HDMI codec failed
[  113.593641] sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
[  113.611861] sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[  113.619456] sof-audio-pci-intel-mtl 0000:00:1f.3: no hda codecs found!
[  113.663981] sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.12.0.1
[  113.791930] sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.12.0.1
[  113.928090] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:0
[  113.942684] sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred
[  114.014339] input: sof-soundwire Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input4
root@intel-x86-64:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@intel-x86-64:~# aplay -Dhw:0,0 kgyl.wav 
Playing WAVE 'kgyl.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo

Here is the log with debug info:

alsa-info.txt

dmesg.txt

JianpengChang avatar Mar 24 '25 02:03 JianpengChang

[  113.572733] sof-audio-pci-intel-mtl 0000:00:1f.3: couldn't bind with audio component
[  113.580760] sof-audio-pci-intel-mtl 0000:00:1f.3: init of i915 and HDMI codec failed

You probably need some patches to make HDMI work.

bardliao avatar Apr 07 '25 05:04 bardliao

The board does not have support for display audio:

[  113.619456] sof-audio-pci-intel-mtl 0000:00:1f.3: no hda codecs found!

It is a soundwire device w/o any HDA codec, the display audio is via HDA.

ujfalusi avatar Apr 11 '25 05:04 ujfalusi

Hi @ujfalusi, I'm not familiar with hardware. from the RVP user guide, the codec ALC711-VD support soundwire only. So this is not an issue, right?

JianpengChang avatar Apr 14 '25 02:04 JianpengChang

@JianpengChang, there might be a BIOS settings to enable the iDisp codec, but if it is not present then there is not much we can do about it.

ujfalusi avatar May 13 '25 13:05 ujfalusi