linux icon indicating copy to clipboard operation
linux copied to clipboard

[BUG] HP Omen 14 not detected

Open pyaggi opened this issue 6 months ago • 42 comments

The integrated driver is not being detected in the HP OMEN Transcend 14,

the output of the command:

cat /sys/bus/acpi/devices/*/adr | grep 025d  
0x000030025d071101  
0x000330025d131601

According to #4880 the board should be:

Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
Topology file: intel/sof-ace-tplg/sof-mtl-rt711-l0-rt1316-l3-2ch.tplg.gz)

but instead it is defaulting to :

Firmware file: intel/sof-ipc4/arl/sof-arl.ri  
Topology file: intel/sof-ace-tplg/sof-arl-rt711-l0-2ch.tplg

I already checked and the kernel has all the patches described in thesofproject/sof#4880 applied. I'm using kernel 6.15.13 and sof-firmware 2025.05 on opensuse

Here is all dmesg output related to sof with debuging information included

[    3.397313] [    T126] audit: type=1400 audit(1751281624.332:4): avc:  denied  { read } for  pid=1 comm="systemd" name="sof-dyndbg.conf" dev="nvme0n1p5" ino=504204 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=0
[    3.837045] [    T126] audit: type=1400 audit(1751281624.772:5): avc:  denied  { read } for  pid=753 comm="systemd-modules" name="sof-dyndbg.conf" dev="nvme0n1p5" ino=504204 scontext=system_u:system_r:systemd_modules_load_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=0
[    4.508059] [    T800] snd_intel_dspcfg:snd_intel_dsp_driver_probe: snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    4.508082] [    T800] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: ACPI reports 4 SDW Link devices
[    4.508090] [    T800] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: Link 1 not selected in firmware
[    4.508094] [    T800] snd_hda_intel 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[    5.501429] [    T800] snd_hda_intel 0000:01:00.1: enabling device (0000 -> 0002)
[    5.501547] [    T800] snd_hda_intel 0000:01:00.1: Disabling MSI
[    5.501561] [    T800] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client
[    5.595669] [    T800] snd_intel_dspcfg:snd_intel_dsp_driver_probe: sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    5.595696] [    T800] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: ACPI reports 4 SDW Link devices
[    5.595705] [    T800] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: Link 1 not selected in firmware
[    5.595710] [    T800] snd_sof_pci:sof_pci_probe: sof-audio-pci-intel-mtl 0000:00:1f.3: PCI DSP detected
[    5.595729] [    T800] sof-audio-pci-intel-mtl 0000:00:1f.3: enabling device (0000 -> 0002)
[    5.595966] [    T800] sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[    5.596046] [    T800] sof-audio-pci-intel-mtl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
[    5.602536] [    T800] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-mtl 0000:00:1f.3: checking for capabilities at offset 0xc00
[    5.602542] [    T800] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-mtl 0000:00:1f.3: found ML capability at 0xc00
[    5.602544] [    T800] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-mtl 0000:00:1f.3: checking for capabilities at offset 0x500
[    5.602547] [    T800] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-mtl 0000:00:1f.3: found DRSM capability at 0x500
[    5.602549] [    T800] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-mtl 0000:00:1f.3: checking for capabilities at offset 0x700
[    5.602553] [    T800] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-mtl 0000:00:1f.3: found SPIB capability at 0x700
[    5.602555] [    T800] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-mtl 0000:00:1f.3: checking for capabilities at offset 0x800
[    5.602559] [    T800] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-mtl 0000:00:1f.3: found DSP capability at 0x800
[    5.603534] [     T43] snd_sof_intel_hda_common:hda_dsp_stream_init: sof-audio-pci-intel-mtl 0000:00:1f.3: hda global caps = 0x1009a01
[    5.603540] [     T43] snd_sof_intel_hda_common:hda_dsp_stream_init: sof-audio-pci-intel-mtl 0000:00:1f.3: detected 9 playback and 10 capture streams
[    5.603704] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
[    5.603708] [     T43] snd_sof_intel_hda_generic:hda_dsp_probe: sof-audio-pci-intel-mtl 0000:00:1f.3: using IPC IRQ 201
[    5.604186] [     T43] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-mtl 0000:00:1f.3: Debug PCIR: 00000000 at  00000044
[    5.604192] [     T43] snd_sof_intel_hda_generic:hda_init_caps: sof-audio-pci-intel-mtl 0000:00:1f.3: PP capability, will probe DSP later.
[    5.607006] [     T43] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-mtl 0000:00:1f.3: Debug PCIR: 00000000 at  00000048
[    5.611214] [     T43] snd_sof_intel_hda:hda_codec_detect_mask: sof-audio-pci-intel-mtl 0000:00:1f.3: codec_mask = 0x4
[    5.611235] [     T43] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-mtl 0000:00:1f.3: Debug PCIR: 00000000 at  00000048
[    5.611239] [     T43] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-mtl 0000:00:1f.3: Debug PCIW: 00000040 at  00000048
[    5.612767] [     T43] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: ACPI reports 4 SDW Link devices
[    5.612773] [     T43] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: Link 1 not selected in firmware
[    5.613325] [     T43] snd_sof_intel_hda:hda_codec_probe: sof-audio-pci-intel-mtl 0000:00:1f.3: HDA codec thesofproject/sof#2 probed OK: response: 8086281d
[    5.613998] [     T43] snd_sof_intel_hda:request_codec_module: snd_hda_codec_hdmi ehdaudio0D2: loading codec module: hdaudio:v8086281Dr00100000a01
[    5.616627] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 4
[    5.616630] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
[    5.616632] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
[    5.616635] [     T43] snd_intel_dspcfg:intel_nhlt_get_dmic_geo: sof-audio-pci-intel-mtl 0000:00:1f.3: found 1 format definitions
[    5.616637] [     T43] snd_intel_dspcfg:intel_nhlt_get_dmic_geo: sof-audio-pci-intel-mtl 0000:00:1f.3: max channels found 2
[    5.616639] [     T43] snd_intel_dspcfg:intel_nhlt_get_dmic_geo: sof-audio-pci-intel-mtl 0000:00:1f.3: Array with 2 dmics
[    5.616640] [     T43] snd_intel_dspcfg:intel_nhlt_get_dmic_geo: sof-audio-pci-intel-mtl 0000:00:1f.3: dmic number 2 max_ch 2
[    5.616642] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[    5.619001] [    T802] snd_soc_rt1316_sdw:rt1316_sdw_init: rt1316-sdca sdw:0:3:025d:1316:01: rt1316_sdw_init
[    5.619005] [    T802] snd_soc_rt1316_sdw:rt1316_read_prop: rt1316-sdca sdw:0:3:025d:1316:01: rt1316_read_prop
[    5.619655] [     T43] snd_sof:sof_test_topology_file: sof-audio-pci-intel-mtl 0000:00:1f.3: Failed to open topology file: intel/sof-ace-tplg/sof-arl-rt711-l0-2ch.tplg
[    5.619659] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: SOF firmware and/or topology file not found.
[    5.619663] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: Supported default profiles
[    5.619664] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: - ipc type 1 (Requested):
[    5.619666] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3:  Firmware file: intel/sof-ipc4/arl/sof-arl.ri
[    5.619667] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3:  Topology file: intel/sof-ace-tplg/sof-arl-rt711-l0-2ch.tplg
[    5.619669] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: Check if you have 'sof-firmware' package installed.
[    5.619670] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: Optionally it can be manually downloaded from:
[    5.619672] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3:    https://github.com/thesofproject/sof-bin/
[    5.620189] [     T43] snd_sof_pci_intel_mtl:mtl_enable_sdw_irq: sof-audio-pci-intel-mtl 0000:00:1f.3: FW Poll Status: reg[0x114c]=0x0 successful
[    5.621269] [     T43] snd_sof_pci_intel_mtl:mtl_power_down_dsp: sof-audio-pci-intel-mtl 0000:00:1f.3: FW Poll Status: reg[0x1000]=0x0 successful
[    5.621514] [     T43] sof-audio-pci-intel-mtl 0000:00:1f.3: error: sof_probe_work failed err: -2

(by error I posted this issue in the thsofproject/linux , I think here is the right place )

pyaggi avatar Jul 01 '25 00:07 pyaggi

@bardliao Can you take a look? Why the 1316 amps are not found and kernel tries to look for tplg with just the 711 codec?

@pyaggi Can you attach output of alsa-info (see https://thesofproject.github.io/latest/getting_started/intel_debug/suggestions.html) so we can verify the machine configuration?

kv2019i avatar Jul 01 '25 08:07 kv2019i

Duplicate (same issue) of https://github.com/thesofproject/linux/issues/5470 ?

ujfalusi avatar Jul 01 '25 09:07 ujfalusi

@pyaggi It is likely that below config is not listed in soc-acpi-intel-arl-match.c.

0x000030025d071101  
0x000330025d131601

The https://github.com/thesofproject/linux/commit/0f8edb15fb6e436f0da7ab25ffcbcaab3def7e8c commit is for MTL and you need a similar commit on soc-acpi-intel-arl-match.c. In fact, thsofproject/linux is a better place to report this issue. Let's move to thsofproject/linux and close ttps://github.com/thesofproject/linux/issues/5470

bardliao avatar Jul 01 '25 12:07 bardliao

@pyaggi The driver is looking for arl because your CPU is probably ARL instead of MTL.

bardliao avatar Jul 01 '25 13:07 bardliao

@pyaggi Could you try https://github.com/thesofproject/linux/pull/5475 and rename the sof-mtl-rt711-l0-rt1316-l3-2ch.tplg to sof-arl-rt711-l0-rt1316-l3-2ch.tplg?

bardliao avatar Jul 01 '25 13:07 bardliao

@kv2019i here' s the output of alsa-info alsa-info.txt

@bardliao I did try to rename sof-mtl-rt711-l0-rt1316-l3-2ch.tplg to sof-arl-rt711-l0-2ch.tplg, as it is the one is reporting, it complains about not finding something, I'll do it again, and also what you mention, but I need to restart the computer to test the changes (is any other way ?), so I'll let you know in a while.

pyaggi avatar Jul 01 '25 21:07 pyaggi

@ujfalusi yes, my bad, sorry

pyaggi avatar Jul 01 '25 21:07 pyaggi

@bardliao this is the output of dmesg when I renamed the sof-mtl-rt711-l0-rt1316-l3-2ch.tplg to sof-arl-rt711-l0-2ch.tplg, as it is the one is looking for. I also renamed as you suggested (it is ignored in that case) as I also applied the patch you suggested to soc-acpi-intel-arl-match.c.

sound_info_renamed_to_sof-arl-rt11-l0-2ch.tplg.txt

pyaggi avatar Jul 01 '25 22:07 pyaggi

@pyaggi Could you replave the /etc/modprobe.d/sof-dyndbg.conf by sof-dyndbg.conf.txt (Rename it to sof-dyndbg.conf) to set below options options soundwire_bus dyndbg=+pmf options snd_soc_sdw_utils dyndbg=+pmf

Also, I suspect that you might not boot with the kernel that apply https://github.com/thesofproject/linux/pull/5475. Could you share the output of cat /proc/version?

bardliao avatar Jul 02 '25 01:07 bardliao

@bardliao with your sof-dyndbg conf: sound_msg.txt

/proc/version: Linux version 6.15.3-2-default ([email protected]) (gcc (SUSE Linux) 15.1.1 20250528, GNU ld (GNU Binutils; openSUSE Tumbleweed) 2.43.1.20241209-8) #3 SMP PREEMPT_DYNAMIC Tue Jul 1 18:25:32 -03 2025

Seems to be my version, anyway here is a diff of my kernel/sound tree just in case I did something wrong: kernel_sound.diff.txt

pyaggi avatar Jul 02 '25 01:07 pyaggi

I just saw the patch #5475, when I was catching up with your messages and you suggested what you did in that patch I patched by myself, I will now apply your patch in case I messed up. Let you know in a moment...

pyaggi avatar Jul 02 '25 01:07 pyaggi

@pyaggi It seems you did the change by yourself and not cherry pick my patch. Can you make sure

514,519d492
< 	},
< 	{
< 		.link_mask = 0x9, /* 2 active links required */
< 		.links = mtl_rt711_l0_rt1316_l3,
< 		.drv_name = "sof_sdw",Add commentMore actions
< 		.sof_tplg_filename = "sof-arl-rt711-l0-rt1316-l3.tplg",

is in front of

        {
                .link_mask = 0x1, /* link0 required */
                .links = arl_rvp,
                .drv_name = "sof_sdw",
                .sof_tplg_filename = "sof-arl-rt711.tplg",
        },
        {
                .link_mask = 0x1, /* link0 required */
                .links = arl_sdca_rvp,
                .drv_name = "sof_sdw",
                .sof_tplg_filename = "sof-arl-rt711-l0.tplg",
        },

? Like my snd_soc_acpi_intel_arl_sdw_machines[]

struct snd_soc_acpi_mach snd_soc_acpi_intel_arl_sdw_machines[] = {
...
        {
                .link_mask = BIT(0) | BIT(3),
                .links = arl_rt711_l0_rt1316_l3,
                .drv_name = "sof_sdw",
                .sof_tplg_filename = "sof-arl-rt711-l0-rt1316-l3.tplg",
        },
        {
                .link_mask = 0x1, /* link0 required */
                .links = arl_rvp,
                .drv_name = "sof_sdw",
                .sof_tplg_filename = "sof-arl-rt711.tplg",
        },
        {
                .link_mask = 0x1, /* link0 required */
                .links = arl_sdca_rvp,
                .drv_name = "sof_sdw",
                .sof_tplg_filename = "sof-arl-rt711-l0.tplg",
        },
...
        {},
};

Otherwise, the driver will match arl_sdca_rvp first and use the sof-arl-rt711-l0-2ch.tplg

bardliao avatar Jul 02 '25 01:07 bardliao

Edit: Disregard this message, I messed up the compilation of my kernel when I applied your patch. I'll fix it tomorrow and let you know, as now I see the file has a dependency not available in my kernel source ( "sof-function-topology-lib.h")

Well, I tried a couple of things, your patch didn' t work either, with your patch the topology that was trying to load was sof-arl-rt711-l0.tplg. It failed because that tplg didn' t exist. sound_msg.txt
So I copied the file sof-mtl-rt711-l0-rt1316-l3.tplg into it. But it failed to load sound_msg_1.txt
So I copied the file sof-mtl-rt711-2ch.tplg into it. It loaded,a device was created, but no sound output was produced.

I notice the problem is the BIT(3) is never raised, as I removed it from the matcher, and I also removed all other entries for the rt711 from soc-acpi-intel-arl-match.c, so It finaly loaded the topology sof-arl-rt711-l0-rt1316-l3.tplg . It created a lot of devices but no sound output was produced in any. sound_msg_2.txt

pyaggi avatar Jul 02 '25 03:07 pyaggi

@pyaggi Could you share the alsa-info when the sof-arl-rt711-l0-rt1316-l3.tplg is loaded? No sound output could be mixer setting issue.

bardliao avatar Jul 02 '25 06:07 bardliao

@bardliao your patch is working, now the device is being detected and 7 output devices are created:

Image

only the first one works, it outputs audio to the headphone connector, it is available even when the headphones are not connected and no switching happen when the headphone is pluged or unpluged.

most of the other outputs are spatial sound (seven channels each) and most of them hangs the stream when trying to output on the first two channels.

no sound is output through the internal speakers.

pyaggi avatar Jul 02 '25 06:07 pyaggi

@bardliao Here is alsa-info output: alsa-info.txt

pyaggi avatar Jul 02 '25 13:07 pyaggi

@pyaggi, with Pro audio you need to manually configure all sorts of mixer controls to be able to get the speaker working. alsamixer c1 and poke around until you hear something, You probably need to use the "Pro 2" for speaker.

Try to switch not HiFi audio and then you should only have the speaker option, Headphone will appear if you have headset connected.

you can also test in command line with aplay: aplay -Dplughw:1,2 <path to wav> for speaker and again, poke the alsamixer controls.

ujfalusi avatar Jul 02 '25 13:07 ujfalusi

@bardliao Great job man !, finally it is working, now a couple of question if you don't mind:
I had to enable the rt1316-1 DAC, and that was it. Shouldn't that be enabled by default ?
I see a lot of options/mixers/etc available that are not controllable through KDE, that is something that KDE has to work on, or it is something that sof is not announcing/handling, can I do something about it ? Also KDE adds 7 devices for sof-soundwire, but I only see one in alsa-mixer (as a card).

pyaggi avatar Jul 02 '25 14:07 pyaggi

@pyaggi, you should stop using Pro audio profile unless you really need to, it gives you close to metal access to PCMs, but then you need to fiddle with mixers in low level, Pro Audio expects you to know the hardware and know what to change.

As for the 7 devices: again, you are using Pro audio which presents you PCM devices:

!!Aplay/Arecord output
!!--------------------

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofsoundwire [sof-soundwire], device 2: Speaker (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 1: sofsoundwire [sof-soundwire], device 1: Jack In (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofsoundwire [sof-soundwire], device 3: Amp feedback (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofsoundwire [sof-soundwire], device 10: DMIC Raw (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

You need to select the profile which is matching with your use case, I don't have sdw machine in front, but you likely want Speaker, Headset, HDMI listed in the line. That should handle the use cases and takes care of mixers, moving audio from one PCM device to another (:0,0 is headset PCM, :0,2 is Speaker), etc.

ujfalusi avatar Jul 02 '25 14:07 ujfalusi

Ok, I see ... but I'm not really choosing to use it, it is my distro (OpenSuse/Kde) that picked and configure those 7 devices (I think using pipewire). So is there an alternative ?

pyaggi avatar Jul 02 '25 17:07 pyaggi

@bardliao Great job man !, finally it is working, now a couple of question if you don't mind: I had to enable the rt1316-1 DAC, and that was it. Shouldn't that be enabled by default ? I see a lot of options/mixers/etc available that are not controllable through KDE, that is something that KDE has to work on, or it is something that sof is not announcing/handling, can I do something about it ? Also KDE adds 7 devices for sof-soundwire, but I only see one in alsa-mixer (as a card).

@pyaggi I am not an expert of mixer settings. But maybe just like @ujfalusi said, Pro audio may not be the best audio server to config the mixer settings. I would expect that UCM will set every required mixer setting for you. @shumingfan FYI

bardliao avatar Jul 03 '25 00:07 bardliao

Uh-oh, it looks like there is a regression in UCM/PW. Booted up a sdw laptop and indeed in KDE/Plasma I have option for 'Pro Audio' or 'Off', GNOME only shows 'Pro Audio' This is a TGL laptop in IPC4, but that does not matter: This looks good:

# cat /proc/asound/pcm 
00-00: Jack Out (*) :  : playback 1
00-01: Jack In (*) :  : capture 1
00-02: Speaker (*) :  : playback 1
00-04: Microphone (*) :  : capture 1
00-05: HDMI1 (*) :  : playback 1
00-06: HDMI2 (*) :  : playback 1
00-07: HDMI3 (*) :  : playback 1
00-31: Deepbuffer Jack Out (*) :  : playback 1

This is not:

# alsaucm dump text
Verb.HiFi {
        Comment "Play HiFi quality Music"
        Device.Mic {
                Comment "SoundWire microphones"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        CaptureMicInfoFile "/var/lib/alsa/card0.conf.d/dmics-nhlt.json"
                        CaptureMixerElem "rt715 Capture"
                        CapturePCM "_ucm0001.hw:sofsoundwire,4"
                        CapturePriority 100
                        CaptureSwitch "rt715 Capture Switch"
                        CaptureVolume "rt715 Capture Volume"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        TQ HiFi
                }
        }
        Device.Headphones {
                Comment Headphones
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        JackControl "Headphone Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire"
                        PlaybackPriority 200
                        TQ HiFi
                }
        }
        Device.Headset {
                Comment "Headset Microphone"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        CapturePCM "_ucm0001.hw:sofsoundwire,1"
                        CapturePriority 200
                        CaptureSwitch "rt711 ADC 08 Capture Switch"
                        CaptureVolume "rt711 ADC 08 Capture Volume"
                        JackControl "Headset Mic Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        TQ HiFi
                }
        }
        Device.HDMI1 {
                Comment "HDMI / DisplayPort 1 Output"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        JackControl "HDMI/DP,pcm=5 Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire,5"
                        PlaybackPriority 500
                        TQ HiFi
                }
        }
        Device.HDMI2 {
                Comment "HDMI / DisplayPort 2 Output"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        JackControl "HDMI/DP,pcm=6 Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire,6"
                        PlaybackPriority 600
                        TQ HiFi
                }
        }
        Device.HDMI3 {
                Comment "HDMI / DisplayPort 3 Output"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        JackControl "HDMI/DP,pcm=7 Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire,7"
                        PlaybackPriority 700
                        TQ HiFi
                }
        }
}

Speaker is missing and since you don't have headphone or HDMI connected there is no valid HiFi outputs present, I think this is the reason.

ujfalusi avatar Jul 03 '25 06:07 ujfalusi

@bardliao,

~# amixer -c0 info
Card sysdefault:0 'sofsoundwire'/'DellInc.-Latitude9520--'
  Mixer name    : 'Intel Tigerlake HDMI'
  Components    : 'HDA:80862812,80860101,00100000  cfg-amp:1 iec61937-pcm:7,6,5 hs:rt711 mic:rt715'
  Controls      : 60
  Simple ctrls  : 35

this is missing the spk: in components list, SpeakerCodec1 is Empty and thus the speaker conf is not included...

If.spkdev {
	Condition {
		Type String
		Empty "${var:SpeakerCodec1}"
	}
	False.Include.spkdev.File "/sof-soundwire/${var:SpeakerCodec1}.conf"
}

ujfalusi avatar Jul 03 '25 06:07 ujfalusi

@bardliao, since this device have rt1308 as speaker codec I did this:

diff --git a/ucm2/sof-soundwire/sof-soundwire.conf b/ucm2/sof-soundwire/sof-soundwire.conf
index 5dcafd8b89b5..7127dcad3a4f 100644
--- a/ucm2/sof-soundwire/sof-soundwire.conf
+++ b/ucm2/sof-soundwire/sof-soundwire.conf
@@ -10,7 +10,7 @@ Include.card-init.File "/lib/card-init.conf"
 Include.ctl-remap.File "/lib/ctl-remap.conf"
 
 Define {
-	SpeakerCodec1 ""
+	SpeakerCodec1 "rt1308"
 	SpeakerChannels1 "2"
 	SpeakerAmps1 "0"
 	HeadsetCodec1 ""

And KDE/Plasma, GNOME now works as expected and alsaucm has the Speaker:

Verb.HiFi {
        Comment "Play HiFi quality Music"
        Device.Speaker {
                Comment Speaker
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire,2"
                        PlaybackPriority 100
                        TQ HiFi
                }
        }
...

Kernel regression?

ujfalusi avatar Jul 03 '25 06:07 ujfalusi

@pyaggi, can you share the output of alsaucm dump text on your machine?

ujfalusi avatar Jul 03 '25 06:07 ujfalusi

@ujfalusi
alsaucm -c0 dump text

ALSA lib parser.c:244:(error_node) UCM is not supported for this HDA model (HDA NVidia at 0x84080000 irq 17)
ALSA lib main.c:1554:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -6
alsaucm: error failed to open sound card hw:0: No such device or address

alsaucm -c1 dump text

Verb.HiFi {
        Comment "Play HiFi quality Music"
        Device.Speaker {
                Comment Speaker
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire,2"
                        PlaybackPriority 100
                        TQ HiFi
                }
        }
        Device.Mic {
                Comment "Digital Microphone"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        CaptureMicInfoFile "/var/lib/alsa/card1.conf.d/dmics-nhlt.json"
                        CaptureMixerElem Dmic0
                        CapturePCM "_ucm0001.hw:sofsoundwire,10"
                        CapturePriority 100
                        CaptureSwitch "Dmic0 Capture Switch"
                        CaptureVolume "Dmic0 Capture Volume"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        TQ HiFi
                }
        }
        Device.Headphones {
                Comment Headphones
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        JackControl "Headphone Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire"
                        PlaybackPriority 200
                        TQ HiFi
                }
        }
        Device.Headset {
                Comment "Headset Microphone"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        CaptureMixerElem "rt711 FU0F"
                        CapturePCM "_ucm0001.hw:sofsoundwire,1"
                        CapturePriority 200
                        CaptureSwitch "rt711 FU0F Capture Switch"
                        CaptureVolume "rt711 FU0F Capture Volume"
                        JackControl "Headset Mic Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        TQ HiFi
                }
        }
        Device.HDMI1 {
                Comment "HDMI / DisplayPort 1 Output"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        JackControl "HDMI/DP,pcm=5 Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire,5"
                        PlaybackPriority 500
                        TQ HiFi
                }
        }
        Device.HDMI2 {
                Comment "HDMI / DisplayPort 2 Output"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        JackControl "HDMI/DP,pcm=6 Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire,6"
                        PlaybackPriority 600
                        TQ HiFi
                }
        }
        Device.HDMI3 {
                Comment "HDMI / DisplayPort 3 Output"
                Values {
                        CaptureCTL "_ucm0001.hw:sofsoundwire"
                        JackControl "HDMI/DP,pcm=7 Jack"
                        PlaybackCTL "_ucm0001.hw:sofsoundwire"
                        PlaybackPCM "_ucm0001.hw:sofsoundwire,7"
                        PlaybackPriority 700
                        TQ HiFi
                }
        }
}

dmidecode -s system-product-name

OMEN Transcend Gaming Laptop 14-fb1xxx

pyaggi avatar Jul 03 '25 14:07 pyaggi

@bardliao I can't find the files you mention 5dcafd8b89b5..7127dcad3a4f in my source code, I assume it is for a newer kernel, or something outside it, should I try to do something ?

pyaggi avatar Jul 03 '25 14:07 pyaggi

@bardliao I can't find the files you mention 5dcafd8b89b5..7127dcad3a4f in my source code, I assume it is for a newer kernel, or something outside it, should I try to do something ?

@pyaggi That is an UCM file. Please check the /usr/share/alsa/ucm2/ folder in your laptop. https://github.com/alsa-project/alsa-ucm-conf/blob/master/ucm2/sof-soundwire/sof-soundwire.conf Maybe you should try the latest UCM version.

bardliao avatar Jul 04 '25 03:07 bardliao

@pyaggi, the alsaucm output looks good, it has the Speaker, Headphones, Headset, DMIC and the HDMIs listed, KDE/Plasma should behave like this:

https://github.com/user-attachments/assets/05f48b4c-d010-420b-ac7c-0e1455db42dc

ujfalusi avatar Jul 04 '25 06:07 ujfalusi

@bardliao @ujfalusi with the modification on the ucm configuration file, now kde show this

Image

it still says sof-soundwire but it works perfectly fine.

pyaggi avatar Jul 04 '25 17:07 pyaggi