linux icon indicating copy to clipboard operation
linux copied to clipboard

[BUG] Dummy Outputs with SOF enabled using sof-hda-generic-1ch.tplg

Open stefdb opened this issue 7 months ago • 13 comments

Describe the bug Dummy Outputs with SOF enabled on an ASUS NUC with single speaker, meaning no speaker audio. The driver probes, and I can see the CS35L41 HDA driver is activated when trying to play back using aplay, but no audio is heard.

To Reproduce Boot the system with SOF enabled

Reproduction Rate 100% when SOF is loaded, it doesn't occur with SOF is disabled (by setting snd_intel_dspcfg.dsp_driver=1).

Expected behavior Real outputs exist and playback works.

Impact No audio

Environment

  1. Branch name and commit hash of the 2 repositories: sof (firmware/topology) and linux (kernel driver).
    • Kernel: Linux version 6.15.0-sbinding ([email protected]) (gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #108 SMP PREEMPT_DYNAMIC Wed May 28 14:04:59 BST 2025
    • SOF: 287d174806a369764c20894e234b63e8611873cd
  2. Name of the topology file
    • Topology: sof-hda-generic-1ch.tplg
  3. Name of the platform(s) on which the bug is observed.
    • Platform: Platform: Intel(R) Core(TM) Ultra 9 288V 3.30GHz
    • ASUS NUC14LNS

Screenshots or console output dmesg log with SOF enabled:

dmesg_with_sof_04062025.log

journalctl log with SOF enabled:

journalctl_with_sof_04062025.log

dmesg log with SOF disabled:

dmesg_without_sof_04062025.log

journalctl log with SOF disabled:

journalctl_without_sof_04062025.log

Nodes: (SOF Enabled) dd@dd-NUC14LNK:~$ pw-cli list-objects | grep node.name node.name = "Dummy-Driver" node.name = "Freewheel-Driver" node.name = "Midi-Bridge" node.name = "bluez_midi.server" node.name = "auto_null"

Image

(SOF Disabled) dd@dd-NUC14LNK:~$ pw-cli list-objects | grep node.name node.name = "Dummy-Driver" node.name = "Freewheel-Driver" node.name = "Midi-Bridge" node.name = "bluez_midi.server" node.name = "alsa_output.pci-0000_00_1f.3.analog-stereo" node.name = "alsa_input.pci-0000_00_1f.3.analog-stereo"

Image

stefdb avatar Jun 05 '25 16:06 stefdb

@rfvirgil I assume this was what was discussed today ? Adding @bardliao and @ujfalusi

lgirdwood avatar Jun 09 '25 15:06 lgirdwood

@stefdb Can you share the output of alsaucm dump text?

bardliao avatar Jun 10 '25 02:06 bardliao

@stefdb, does aplay -Dhw:0,0 piano16b48k_long.wav plays out correctly?

  • As @bardliao already asked, what is the output of alsaucm dump text ?
  • can you attach the output of alsa-info.sh --no-upload as well (when SOF is enabled)
  • can you also attach the output of aplay -lL and arecord -lL with SOF enabled and SOF disabled?
  • can you also attach aplay -Dhw:0,0 -fdat --dump-hw-params /dev/zero for both SOF enabled and disabled?

According to the manual I can find, this NUC have a single Headphone/Headset/Microphone jack as audio, no mention about DMIC, but the ACPI table reports this. ALC294+cs35l41 is the setup, right?

The hardware probing is identical in both cases, I don't see what goes wrong. If direct aplay works then this is likely an UCM issue, what is the version of alsa-lib, alsa-utils, alsa-ucm-conf, pipewire, wireplumber.

ujfalusi avatar Jun 10 '25 06:06 ujfalusi

Hi,

Looks like aplay -Dhw:0,0 piano16b48k_long.wav does play audio, even with SOF enabled. Our previous test doing this failed, because the Speaker Switch was muted with SOF enabled, (and not with it disabled) and I didn't notice at the time, though we still have Dummy Outputs in the UI.

I've attached the logs requested.

alsa-info-sof_en.log alsaucm-dump-sof_dis.log alsaucm-dump-sof_en.log aplay-1l-sof_dis.log aplay-1l-sof_en.log aplay-dump-hw-params-sof_dis.log aplay-dump-hw-params-sof_en.log arecord-1l-sof_dis.log arecord-1l-sof_en.log alsa-info-sof_dis.log

As for versions: ii alsa-base 1.0.25+dfsg-0ubuntu7 all ALSA driver configuration files ii alsa-topology-conf 1.2.5.1-3 all ALSA topology configuration files ii alsa-ucm-conf 1.2.10-1ubuntu6 all ALSA Use Case Manager configuration files ii alsa-utils 1.2.11-1ubuntu1 amd64 Utilities for configuring and using ALSA ii gnome-remote-desktop 47.0-1 amd64 Remote desktop daemon for GNOME using PipeWire ii gstreamer1.0-alsa:amd64 1.24.8-1ubuntu0.1 amd64 GStreamer plugin for ALSA ii gstreamer1.0-pipewire:amd64 1.2.4-1ubuntu1 amd64 GStreamer 1.0 plugin for the PipeWire multimedia server ii libasound2-data 1.2.12-1 all Configuration files and profiles for ALSA drivers ii libasound2t64:amd64 1.2.12-1 amd64 shared library for ALSA applications ii libatopology2t64:amd64 1.2.12-1 amd64 shared library for handling ALSA topology definitions ii libgsound0t64:amd64 1.0.3-3.2build2 amd64 small library for playing system sounds ii libpipewire-0.3-0t64:amd64 1.2.4-1ubuntu1 amd64 libraries for the PipeWire multimedia server ii libpipewire-0.3-common 1.2.4-1ubuntu1 all libraries for the PipeWire multimedia server - common files ii libpipewire-0.3-modules:amd64 1.2.4-1ubuntu1 amd64 libraries for the PipeWire multimedia server - modules ii libspa-0.2-bluetooth:amd64 1.2.4-1ubuntu1 amd64 libraries for the PipeWire multimedia server - bluetooth plugins ii libspa-0.2-modules:amd64 1.2.4-1ubuntu1 amd64 libraries for the PipeWire multimedia server Simple Plugin API - modules ii linux-sound-base 1.0.25+dfsg-0ubuntu7 all base package for ALSA and OSS sound systems ii pipewire:amd64 1.2.4-1ubuntu1 amd64 audio and video processing engine multimedia server ii pipewire-alsa:amd64 1.2.4-1ubuntu1 amd64 PipeWire ALSA plugin, for ALSA applications to output via PipeWire ii pipewire-audio 1.2.4-1ubuntu1 all recommended set of PipeWire packages for a standard audio desktop use ii pipewire-bin 1.2.4-1ubuntu1 amd64 PipeWire multimedia server - programs ii pipewire-pulse 1.2.4-1ubuntu1 amd64 PipeWire PulseAudio daemon ii wireplumber 0.5.6-1ubuntu1 amd64 modular session / policy manager for PipeWire

Thanks, Stefan

stefdb avatar Jun 11 '25 16:06 stefdb

It is the 1ch which confuses PW (ucm), I can reproduce it easily by: options snd_sof tplg_filename=sof-hda-generic-cavs25-1ch.tplg on upx-i11 for example, switching to -2ch and all is good.

ujfalusi avatar Jun 12 '25 07:06 ujfalusi

@singalsu do you have any hints on why ucm get's confused by -1ch? You have added these -1ch hda topology targets.

ujfalusi avatar Jun 12 '25 07:06 ujfalusi

Wow, thanks for report @ujfalusi ! I'll check what happens.

singalsu avatar Jun 12 '25 08:06 singalsu

I can replicate the issue with Ubuntu 25.04.

singalsu avatar Jun 12 '25 10:06 singalsu

Looks like wireplumber have issues with mono capture? -2ch

D 13:58:21.366039           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:714:pa_alsa_open_by_device_string: Trying _ucm0009.hw:sofhdadsp,6 with SND_PCM_NO_AUTO_FORMAT ...
I 13:58:21.366702           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:724:pa_alsa_open_by_device_string: ALSA device open '_ucm0009.hw:sofhdadsp,6' capture: 0x55559d0eda10
D 13:58:21.366764           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:79:set_format: snd_pcm_hw_params_set_format(Signed 16 bit Little Endian) failed: Invalid argument
D 13:58:21.366777           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:109:set_format: snd_pcm_hw_params_set_format(Signed 16 bit Big Endian) failed: Invalid argument
D 13:58:21.366789           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:121:set_format: snd_pcm_hw_params_set_format(Float 32 bit Little Endian) failed: Invalid argument
D 13:58:21.366800           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:121:set_format: snd_pcm_hw_params_set_format(Float 32 bit Big Endian) failed: Invalid argument
D 13:58:21.366812           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:327:pa_alsa_set_hw_params: Maximum hw buffer size is 10922 ms
D 13:58:21.387616           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:341:pa_alsa_set_hw_params: Set buffer size first (to 4800 samples), period size second (to 1200 samples).
I 13:58:21.387667           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:395:pa_alsa_set_hw_params: Device hw:sofhdadsp,6 doesn't support sample format s16le, changed to s32le.
D 13:58:21.387700           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-ucm.c:2625:ucm_probe_profile_set: Profile HiFi supported.
I 13:58:21.388181           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:1828:prepare_mixer: Successfully attached to mixer '_ucm0009.hw:sofhdadsp'
D 13:58:21.388210           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:1899:pa_alsa_open_mixer_by_name: ALSA alias mixers: _ucm0009.hw:0 = _ucm0009.hw:sofhdadsp
I 13:58:21.388235           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-ucm.c:2556:ucm_mapping_jack_probe: UCM jack HDMI/DP,pcm=5 has_control=1
I 13:58:21.388257           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-ucm.c:2556:ucm_mapping_jack_probe: UCM jack HDMI/DP,pcm=4 has_control=1
I 13:58:21.388294           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-ucm.c:2556:ucm_mapping_jack_probe: UCM jack HDMI/DP,pcm=3 has_control=1
I 13:58:21.388320           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-ucm.c:2556:ucm_mapping_jack_probe: UCM jack Headphone has_control=0
I 13:58:21.388356           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-ucm.c:2556:ucm_mapping_jack_probe: UCM jack Mic has_control=1

-1ch

D 13:53:59.867456           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:714:pa_alsa_open_by_device_string: Trying _ucm0006.hw:sofhdadsp,6 with SND_PCM_NO_AUTO_FORMAT ...
I 13:53:59.867948           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:724:pa_alsa_open_by_device_string: ALSA device open '_ucm0006.hw:sofhdadsp,6' capture: 0x55559d0eda10
D 13:53:59.868012           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:79:set_format: snd_pcm_hw_params_set_format(Signed 16 bit Little Endian) failed: Invalid argument
D 13:53:59.868033           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:109:set_format: snd_pcm_hw_params_set_format(Signed 16 bit Big Endian) failed: Invalid argument
D 13:53:59.868055           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:121:set_format: snd_pcm_hw_params_set_format(Float 32 bit Little Endian) failed: Invalid argument
D 13:53:59.868078           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:121:set_format: snd_pcm_hw_params_set_format(Float 32 bit Big Endian) failed: Invalid argument
D 13:53:59.868101           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:299:pa_alsa_set_hw_params: snd_pcm_hw_params_set_channels(2) failed: Invalid argument
I 13:53:59.868121           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:677:pa_alsa_close: ALSA device close 0x55559d0eda10
D 13:53:59.868249           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:714:pa_alsa_open_by_device_string: Trying _ucm0006.hw:sofhdadsp,6 without SND_PCM_NO_AUTO_FORMAT ...
I 13:53:59.868837           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:724:pa_alsa_open_by_device_string: ALSA device open '_ucm0006.hw:sofhdadsp,6' capture: 0x55559d0eda10
D 13:53:59.868908           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:79:set_format: snd_pcm_hw_params_set_format(Signed 16 bit Little Endian) failed: Invalid argument
D 13:53:59.868932           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:109:set_format: snd_pcm_hw_params_set_format(Signed 16 bit Big Endian) failed: Invalid argument
D 13:53:59.868952           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:121:set_format: snd_pcm_hw_params_set_format(Float 32 bit Little Endian) failed: Invalid argument
D 13:53:59.868972           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:121:set_format: snd_pcm_hw_params_set_format(Float 32 bit Big Endian) failed: Invalid argument
D 13:53:59.868993           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:299:pa_alsa_set_hw_params: snd_pcm_hw_params_set_channels(2) failed: Invalid argument
I 13:53:59.869013           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:677:pa_alsa_close: ALSA device close 0x55559d0eda10
D 13:53:59.869158           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:714:pa_alsa_open_by_device_string: Trying plug:SLAVE='_ucm0006.hw:sofhdadsp,6' with SND_PCM_NO_AUTO_FORMAT ...
I 13:53:59.869285           spa.alsa pcm.c:2722:snd_pcm_open_noupdate: Unknown PCM _ucm0006.hw:sofhdadsp,6
I 13:53:59.869323           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-util.c:721:pa_alsa_open_by_device_string: Error opening PCM device plug:SLAVE='_ucm0006.hw:sofhdadsp,6': No such file or directory
I 13:53:59.869346           spa.alsa ../pipewire/spa/plugins/alsa/acp/alsa-ucm.c:2611:ucm_probe_profile_set: Profile 'HiFi' mapping 'HiFi: Mic1: source': input PCM open failed

With -1ch the card is rejected.

ujfalusi avatar Jun 12 '25 10:06 ujfalusi

@stefdb, can you try: https://github.com/alsa-project/alsa-ucm-conf/pull/579

FYI, @singalsu

ujfalusi avatar Jun 12 '25 13:06 ujfalusi

Hi,

Looks like that fixes it!

Image

Thanks, Stefan

stefdb avatar Jun 13 '25 09:06 stefdb

@stefdb, https://github.com/alsa-project/alsa-ucm-conf/pull/579 is merged, can you close the issue if the solution is OK?

ujfalusi avatar Jun 23 '25 06:06 ujfalusi

@stefdb, ping, can you check and close the issue if it is fixed?

ujfalusi avatar Jul 07 '25 07:07 ujfalusi