linux icon indicating copy to clipboard operation
linux copied to clipboard

sof-audio-pci-intel-tgl error messages piling on DMESG

Open rfsalomon opened this issue 1 year ago • 12 comments

System information:

Operating System: openSUSE Tumbleweed 20241025 KDE Plasma Version: 6.2.2 KDE Frameworks Version: 6.7.0 Qt Version: 6.8.0 Kernel Version: 6.11.5-1-default (64-bit) Graphics Platform: Wayland Processors: 24 × 12th Gen Intel® Core™ i7-12850HX Memory: 31.1 GiB of RAM Graphics Processor: NVIDIA RTX A2000 8GB Laptop GPU/PCIe/SSE2 Manufacturer: LENOVO Product Name: 21D6S16900 System Version: ThinkPad P16 Gen 1

The following messages keep being written to DMESG:

sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at snd_soc_dai_hw_params on iDisp1 Pin: -22

This message repeats 20 times before changing to

sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at snd_soc_dai_hw_params on iDisp1 Pin: -22

Which repeats 20 times and changes to

sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at snd_soc_dai_hw_params on iDisp3 Pin: -22

Which also repeats for 20 times before going back to iDisp1 and continuing the cycle

The driver logs the following information before entering the error message cycle:

sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380
sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
sof-audio-pci-intel-tgl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 2
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware paths/files for ipc type 0:
sof-audio-pci-intel-tgl 0000:00:1f.3:  Firmware file:     intel/sof/sof-adl-s.ri
sof-audio-pci-intel-tgl 0000:00:1f.3:  Topology file:     intel/sof-tplg/sof-hda-generic-2ch.tplg
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:1
sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
cdc_ncm 4-1.1:2.0: setting tx_max = 16384 
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:1
sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:1

Sound works fine but the sheer amount of error messages logged caught my eye.

Additional information:

# hwinfo –sound

20: PCI 1f.3: 0403 Audio device
  [Created at pci.386]
  Unique ID: nS1_.ZKSQd808JI1
  SysFS ID: /devices/pci0000:00/0000:00:1f.3
  SysFS BusID: 0000:00:1f.3
  Hardware Class: sound
  Model: "Intel Audio device"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x7ad0
  SubVendor: pci 0x17aa "Lenovo"
  SubDevice: pci 0x22fc
  Revision: 0x11
  Driver: "sof-audio-pci-intel-tgl"
  Driver Modules: "snd_sof_pci_intel_tgl"
  Memory Range: 0x4251638000-0x425163bfff (rw,non-prefetchable)
  Memory Range: 0x4251500000-0x42515fffff (rw,non-prefetchable)
  IRQ: 206 (1156 events)
  Module Alias: "pci:v00008086d00007AD0sv000017AAsd000022FCbc04sc03i80"
  Driver Info #0:
    Driver Status: snd_hda_intel is active
    Driver Activation Cmd: "modprobe snd_hda_intel"
  Driver Info #1:
    Driver Status: snd_soc_avs is active
    Driver Activation Cmd: "modprobe snd_soc_avs"
  Driver Info #2:
    Driver Status: snd_sof_pci_intel_tgl is active
    Driver Activation Cmd: "modprobe snd_sof_pci_intel_tgl"
  Config Status: cfg=new, avail=yes, need=no, active=unknown

28: PCI 100.1: 0403 Audio device
  [Created at pci.386]
  Unique ID: NXNs.Z+BlTBGqFL4
  Parent ID: vSkL.WM1Tf0yQKB5
  SysFS ID: /devices/pci0000:00/0000:00:01.0/0000:01:00.1
  SysFS BusID: 0000:01:00.1
  Hardware Class: sound
  Model: "nVidia Audio device"
  Vendor: pci 0x10de "nVidia Corporation"
  Device: pci 0x2291
  SubVendor: pci 0x17aa "Lenovo"
  SubDevice: pci 0x22db
  Revision: 0xa1
  Driver: "snd_hda_intel"
  Driver Modules: "snd_hda_intel"
  Memory Range: 0xaa000000-0xaa003fff (rw,non-prefetchable)
  IRQ: 17 (617 events)
  Module Alias: "pci:v000010DEd00002291sv000017AAsd000022DBbc04sc03i00"
  Driver Info #0:
    Driver Status: snd_hda_intel is active
    Driver Activation Cmd: "modprobe snd_hda_intel"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #10 (PCI bridge)

39: USB 00.1: 0401 Multimedia audio controller
  [Created at usb.122]
  Unique ID: zjpQ.NUtrPFK8oC9
  Parent ID: k4bc.2DFUsyrieMD
  SysFS ID: /devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.1
  SysFS BusID: 1-12:1.1
  Hardware Class: sound
  Model: "Samsung Electronics Samsung USB C Earphones"
  Hotplug: USB
[dmesg.txt](https://github.com/user-attachments/files/17543068/dmesg.txt)

  Vendor: usb 0x04e8 "Samsung Electronics Co., Ltd"
  Device: usb 0xa05e "Samsung USB C Earphones"
  Revision: "1.00"
  Serial ID: "20160406.1"
  Driver: "snd-usb-audio"
  Driver Modules: "snd_usb_audio"
  Speed: 12 Mbps
  Module Alias: "usb:v04E8pA05Ed0100dc00dsc00dp00ic01isc02ip00in01"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #49 (Hub)

rfsalomon avatar Oct 28 '24 13:10 rfsalomon

@rfsalomon, the prints like

sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at snd_soc_dai_hw_params on iDisp1 Pin: -22

are printed because PA/PW is probing all PCMs of the sound cards and since you have NVIDIA dGPU, the HDMI via Intel display is not working, they are physically disconnected.

Can you attach the output of alsa-info.sh, a full kernel log (dmesg)?

ujfalusi avatar Nov 12 '24 09:11 ujfalusi

Here they are.

dmesg.txt alsa-info.txt

rfsalomon avatar Nov 12 '24 22:11 rfsalomon

891af1bd-9e14-4463-b427-5cf10c390d5b

@rfsalomon, the prints like

sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at snd_soc_dai_hw_params on iDisp1 Pin: -22

are printed because PA/PW is probing all PCMs of the sound cards and since you have NVIDIA dGPU, the HDMI via Intel display is not working, they are physically disconnected.

Understood. However, these lines should not appear on the console when the user logs in without a shell, should they?

rfsalomon avatar Nov 12 '24 22:11 rfsalomon

You have misspelled option to select the legacy driver snd-intel-dspcf.dsp_driver=1 -> snd-intel-dspcfg.dsp_driver=1 With that option you will certainly not get the same prints, but you will loose the digital microphones in the laptop.

Right, I see now in the dmesg/alsa-info log:

[   14.212949] [     T45] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 1

the display codec is not connected and in this case SOF needs to treat the HDMI audio PCM devices as dummy ones, they are created, but they will no work and they will eventually throw an error, which is unfortunate. I cannot recall what solution we have for this, @kv2019i, do you have recollection?

The problem is that the topology files we have assumes that there is always HDMI audio. I'm sure this machine is not the first with such setup and so far they have worked somehow.

I do agree t hat the prints are not nice in the console.

ujfalusi avatar Nov 13 '24 09:11 ujfalusi

@ujfalusi This seems like a user-space problem. alsa-info shows that no HDMI/DP PCMs are created for integrated graphics and dummy codecs are plugged in instead. So for kernel this is as expected. alsa-info also shows no controls for HDMI/DP for the SOF device, so user-space elements should NOT try to open the SOF devices.

For some reaosn some user-space entity keeps on opening the dummy HDMI/DP entities (even if kcontrols say there's nothing connected) and the resulting error is to be expected (you can't actually stream to the dummy codec).

That's a good question which component and why in user-space is making this call. I'm guessing this is using Pipewire. Pipewire logs would be the next place to check -- i.e. what's in the log when kernel sees open on the dummy HDMI/DP PCMs.

kv2019i avatar Nov 13 '24 10:11 kv2019i

Yes, it is wireplumber which probes the PCMs to figure out their capabilities. UCM correctly figures out that the HDMI PCM devices are unusable without the need to open the PCMs.

fwiw, I can reproduce it on my gaming laptop with options snd_sof_intel_hda codec_mask=1 and logging in. I cannot find a way to tell wireplumber to not probe the HDMI PCMs.

ujfalusi avatar Nov 13 '24 12:11 ujfalusi

I think it is the pro-audio profile probing which is opening all PCM devices, it is unconditionally goes through all cards and all PCM device via add_pro_profile() https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/spa/plugins/alsa/acp/acp.c?ref_type=heads#L297

I don't see a way to disable this. It is forced with https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/f62c40c205f84d70d41fef3f3d361b0e4651a50e commit.

ujfalusi avatar Nov 14 '24 07:11 ujfalusi

indeed, dropping the call to add_pro_profile() will get rid of the prints in the expense of no pro-audio profile.

ujfalusi avatar Nov 14 '24 07:11 ujfalusi

https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3407

@rfsalomon, I think it would be best to create a bug for Pipewire and add a link to this issue to work out a solution.

ujfalusi avatar Nov 14 '24 10:11 ujfalusi

Will do. I'll post the bug link here for reference. Thanks!

[edit] https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/1835

rfsalomon avatar Nov 14 '24 10:11 rfsalomon

The issue upstream moved to https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4405

ujfalusi avatar Nov 15 '24 06:11 ujfalusi

After one of the package updates (not sure which) the error messages are gone.

rfsalomon avatar Jan 23 '25 14:01 rfsalomon

based on the last comment I have closed the issue, thanks @rfsalomon for the report.

ujfalusi avatar Feb 28 '25 12:02 ujfalusi

based on the last comment I have closed the issue

I get similar errors (without any additional condition) so not sure if I should make a new issue but maybe you could consider reopening

[  131.643983] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -5
[  131.643989] sof-audio-pci-intel-tgl 0000:00:1f.3: HW params ipc failed for stream 1
[  131.643990] sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -5
[  131.643996]  HDMI 1: ASoC: error at __soc_pcm_hw_params on HDMI 1: -5
[  131.644004]  HDMI 1: ASoC: error at dpcm_fe_dai_hw_params on HDMI 1: -5

On Fedora 42 kernel 6.14.5

hwinfo
33: PCI 1f.3: 0401 Multimedia audio controller
  [Created at pci.386]
  Unique ID: nS1_.A1pAHZm_qG4
  SysFS ID: /devices/pci0000:00/0000:00:1f.3
  SysFS BusID: 0000:00:1f.3
  Hardware Class: sound
  Model: "Intel Tiger Lake-LP Smart Sound Technology Audio Controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0xa0c8 "Tiger Lake-LP Smart Sound Technology Audio Controller"
  SubVendor: pci 0x10ec "Realtek Semiconductor Co., Ltd."
  SubDevice: pci 0x119e 
  Revision: 0x20
  Driver: "sof-audio-pci-intel-tgl"
  Driver Modules: "snd_sof_pci_intel_tgl"
  Memory Range: 0x607e1a0000-0x607e1a3fff (rw,non-prefetchable)
  Memory Range: 0x607e000000-0x607e0fffff (rw,non-prefetchable)
  IRQ: 191 (1746 events)
  Module Alias: "pci:v00008086d0000A0C8sv000010ECsd0000119Ebc04sc01i00"
  Driver Info #0:
    Driver Status: snd_hda_intel is active
    Driver Activation Cmd: "modprobe snd_hda_intel"
  Driver Info #1:
    Driver Status: snd_soc_avs is active
    Driver Activation Cmd: "modprobe snd_soc_avs"
  Driver Info #2:
    Driver Status: snd_sof_pci_intel_tgl is active
    Driver Activation Cmd: "modprobe snd_sof_pci_intel_tgl"
  Config Status: cfg=new, avail=yes, need=no, active=unknown

Beryesa avatar May 10 '25 16:05 Beryesa

It works with snd_intel_dspcfg.dsp_driver=1 so I came here first, before pipewire
but it also reported errors like pw.node: (alsa_output.pci-0000_00_1f.3-platform-sof-essx8336.HiFi__HDMI1__sink-76) suspended -> error ((null)) which might be about power saving misconfiguration, so I'm not sure :/

Beryesa avatar May 10 '25 16:05 Beryesa

@Beryesa, can you file a new issue with the 'ipc tx error'? It is not the same issue as the HDMI audio is available errors.

Please copy sof-dyndbg.conf.txt as /etc/modprobe.d/sof-dyndbg.conf reboot and attach the full kernel log and also the output of alsa-info.sh (as attachments).

ujfalusi avatar May 12 '25 12:05 ujfalusi