Skip to content

WHL: UpExtreme: iDisp3: ASoC: error at __soc_pcm_open on iDisp3: -16 #4861

Closed

Description

@plbossart

Reported by internal tests, e.g.

#/result/planresultdetail/38998?model=WHL_UPEXT_HDA-ipc3&testcase=multiple-pipeline-playback-50

This is concerning since it's just a generic HDaudio device...No idea when it started to appear.

[ 2576.892664] kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x60010000: GLB_STREAM_MSG: PCM_PARAMS
[ 2576.893024] kernel: snd_sof_intel_hda_common:hda_set_stream_data_offset: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: stream dir 0, posn mailbox offset is 790528
[ 2576.893168] kernel: snd_hda_codec_hdmi ehdaudio0D2: ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi3: -16
[ 2576.893191] kernel:  iDisp3: ASoC: error at __soc_pcm_open on iDisp3: -16
[ 2576.893204] kernel:  HDMI3: ASoC: error at dpcm_be_dai_startup on HDMI3: -16
[ 2576.893215] kernel:  HDMI3: ASoC: error at dpcm_fe_dai_startup on HDMI3: -16
Test Case URL: https://github.com/thesofproject/sof-test/tree/main/test-case/MODEL=WHL_UPEXT_HDA-ipc3
cmd: TPLG=/lib/firmware/intel/sof-tplg/sof-hda-generic-4ch.tplg MODEL=WHL_UPEXT_HDA-ipc3 SOF_TEST_INTERVAL=5 ~/sof-test/test-case/multiple-pipeline.sh -f p -l 50
====================
framework load: ssh  ubuntu@jf-whl-upext-hda-2.jf.intel.com  'nohup bash -c "TPLG=/lib/firmware/intel/sof-tplg/sof-hda-generic-4ch.tplg MODEL=WHL_UPEXT_HDA-ipc3 SOF_TEST_INTERVAL=5 ~/sof-test/test-case/multiple-pipeline.sh -f p -l 50 2>&1 | nc -N 10.54.29.142 50789" >/dev/null &'
====================
framework run: 'netcat -l -k 50789'
====================
2024-03-19 01:19:35 UTC [REMOTE_INFO] ktime=2576 sof-test PID=18830: starting
2024-03-19 01:19:35 UTC [REMOTE_INFO] Starting /usr/local/bin/sof-logger -t -l /etc/sof/sof-cnl.ldc > /home/ubuntu/sof-test/logs/multiple-pipeline/2024-03-19-01:19:35-20621/slogger.txt &
2024-03-19 01:19:35 UTC [REMOTE_INFO] /home/ubuntu/sof-test/test-case/multiple-pipeline.sh will use topology /usr/lib/firmware/intel/sof-tplg/sof-hda-generic-4ch.tplg to run the test case
2024-03-19 01:19:35 UTC [REMOTE_INFO] Pipeline list to ignore is specified, will ignore 'pcm=HDA Digital' in test case
2024-03-19 01:19:35 UTC [REMOTE_INFO] Run command to get pipeline parameters
2024-03-19 01:19:35 UTC [REMOTE_COMMAND] sof-tplgreader.py /usr/lib/firmware/intel/sof-tplg/sof-hda-generic-4ch.tplg -f 'type:playback & ~pcm:Amplifier Reference' -b ' pcm:HDA Digital' -s 0 -e
2024-03-19 01:19:35 UTC [REMOTE_INFO] ===== Testing: (Loop: 1/50) =====
2024-03-19 01:19:35 UTC [REMOTE_INFO] /home/ubuntu/sof-test/test-case/multiple-pipeline.sh will use topology /usr/lib/firmware/intel/sof-tplg/sof-hda-generic-4ch.tplg to run the test case
2024-03-19 01:19:35 UTC [REMOTE_INFO] Pipeline list to ignore is specified, will ignore 'pcm=HDA Digital' in test case
2024-03-19 01:19:35 UTC [REMOTE_INFO] Run command to get pipeline parameters
2024-03-19 01:19:35 UTC [REMOTE_COMMAND] sof-tplgreader.py /usr/lib/firmware/intel/sof-tplg/sof-hda-generic-4ch.tplg -f 'type:playback ' -b ' pcm:HDA Digital' -s 0 -e
2024-03-19 01:19:35 UTC [REMOTE_INFO] Testing: HDA Analog [hw:0,0]
2024-03-19 01:19:35 UTC [REMOTE_COMMAND] aplay   -D hw:0,0 -c 2 -r 48000 -f S16_LE /dev/zero -q
2024-03-19 01:19:35 UTC [REMOTE_INFO] Testing: HDMI1 [hw:0,3]
2024-03-19 01:19:35 UTC [REMOTE_COMMAND] aplay   -D hw:0,3 -c 2 -r 48000 -f S16_LE /dev/zero -q
2024-03-19 01:19:35 UTC [REMOTE_INFO] Testing: HDMI2 [hw:0,4]
2024-03-19 01:19:35 UTC [REMOTE_COMMAND] aplay   -D hw:0,4 -c 2 -r 48000 -f S16_LE /dev/zero -q
2024-03-19 01:19:35 UTC [REMOTE_INFO] Testing: HDMI3 [hw:0,5]
2024-03-19 01:19:35 UTC [REMOTE_COMMAND] aplay   -D hw:0,5 -c 2 -r 48000 -f S16_LE /dev/zero -q
2024-03-19 01:19:35 UTC [REMOTE_INFO] wait 0.5s for aplay_opts()
aplay: main:831: audio open error: Device or resource busy

@ujfalusi @kv2019i FYI

cc:

Activity

  1. added
    WHLApplies to WhiskeyLake platform
    HDAApplies to HD-Audio bus for codec connection
    display audioAudio to HDMI/DisplayPort via HDA
    on Mar 19, 2024
  2. plbossart commented on Mar 19, 2024

    @plbossart
    MemberAuthor

    I can't reproduce this issue on my own UpExtreme board which was collecting dust for a while.

    I have zero issues when pulseaudio is disabled (as in mv /usr/bin/pulseaudio /usr/bin/_pulseaudio)

    TPLG=/lib/firmware/intel/sof-tplg/sof-hda-generic-4ch.tplg sof-test/test-case/run-all-tests.sh -l1
    
    ...
    
    
    PASS: tplg-binary; pcm_list; playback-d100l1r1; capture-d100l1r1; playback-d1l100r1; capture_d1l100r1; playback_d1l1r50; capture_d1l1r50; speaker; pause-resume-playback; pause-resume-capture; volume; signal-stop-start-playback; signal-stop-start-capture; simultaneous-playback-capture; multiple-pipeline-playback; multiple-pipeline-capture; multiple-pause-resume; kmod-load-unload; kmod-load-unload-after-playback; suspend-resume; suspend-resume-with-playback; suspend-resume-with-capture;
    SKIP: sof-logger; ipc-flood; xrun-injection-playback; xrun-injection-capture; volume_levels;
    
     test end with 0 failed tests
    

    With pulseaudio nothing works, so my money is on a configuration problem for this board.

    @fredoh9 @marc-hb any ideas?

  3. self-assigned this
    on Mar 19, 2024
  4. marc-hb commented on Mar 19, 2024

    @marc-hb
    Collaborator

    I can reproduce on this particular device. There is no pulseaudio running (I think we check that somewhere?)

    I can see this error at boot and then again every time the test fails:

    
    TPLG=/lib/firmware/intel/sof-tplg/sof-hda-generic-4ch.tplg ~/sof-test/test-case/multiple-pipeline.sh -f p  -s
    
    Mar 19 22:52:16 jf-whl-upext-hda-2 kernel: snd_hda_codec_hdmi ehdaudio0D2: ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi3: -16
    Mar 19 22:52:16 jf-whl-upext-hda-2 kernel:  iDisp3: ASoC: error at __soc_pcm_open on iDisp3: -16
    Mar 19 22:52:16 jf-whl-upext-hda-2 kernel:  HDMI3: ASoC: error at dpcm_be_dai_startup on HDMI3: -16
    Mar 19 22:52:16 jf-whl-upext-hda-2 kernel:  HDMI3: ASoC: error at dpcm_fe_dai_startup on HDMI3: -16
    

    @kv2019i any HDMI idea/suggestion?

    @fredoh9 could you (re?)-add verify-kernel-boot-log.sh at the start of the stable-v2.2 test plan?

    I also spotted this:

    Mar 19 22:52:06 jf-whl-upext-hda-2 systemd[712]: Failed to start Application launched by gnome-session-binary.
    Mar 19 22:52:06 jf-whl-upext-hda-2 systemd[712]: app-gnome-xdg\x2duser\x2ddirs-825.scope: Failed to add PIDs to scope's control group: No such process
    Mar 19 22:52:06 jf-whl-upext-hda-2 systemd[712]: app-gnome-xdg\x2duser\x2ddirs-825.scope: Failed with result 'resources'.
    Mar 19 22:52:06 jf-whl-upext-hda-2 systemd[712]: Failed to start Application launched by gnome-session-binary.
    Mar 19 22:52:06 jf-whl-upext-hda-2 systemd[712]: org.gnome.Shell@x11.service: Start request repeated too quickly.
    

    FYI:

    sudo grep -i connected /sys/kernel/debug/dri/0/i915_display_info
    [CONNECTOR:95:DP-1]: status: connected
    [CONNECTOR:107:DP-2]: status: disconnected
    [CONNECTOR:114:DP-3]: status: disconnected
    [CONNECTOR:120:HDMI-A-1]: status: disconnected
    
    --------- Printing module parameters ----------
    /sys/module/snd_intel_dspcfg/parameters/dsp_driver:3
    /sys/module/snd_sof/parameters/ipc4_ignore_cpc:N
    /sys/module/snd_sof/parameters/sof_debug:1
    /sys/module/snd_sof_intel_hda/parameters/codec_mask:-1
    /sys/module/snd_sof_intel_hda_common/parameters/always_enable_dmi_l1:N
    /sys/module/snd_sof_intel_hda_common/parameters/disable_rewinds:N
    /sys/module/snd_sof_intel_hda_common/parameters/enable_trace_D0I3_S0:N
    /sys/module/snd_sof_intel_hda_common/parameters/position_quirk:1
    /sys/module/snd_sof_intel_hda_common/parameters/sof_use_tplg_nhlt:N
    /sys/module/snd_sof_intel_hda_generic/parameters/dmic_num:-1
    /sys/module/snd_sof_intel_hda_generic/parameters/hda_model:(null)
    /sys/module/snd_sof_intel_hda_generic/parameters/mclk_id:-1
    /sys/module/snd_sof_intel_hda_generic/parameters/sdw_clock_stop_quirks:8
    /sys/module/snd_sof_intel_hda_generic/parameters/use_msi:Y
    /sys/module/snd_sof_pci/parameters/fw_filename:(null)
    /sys/module/snd_sof_pci/parameters/fw_path:(null)
    /sys/module/snd_sof_pci/parameters/ipc_type:-1
    /sys/module/snd_sof_pci/parameters/lib_path:(null)
    /sys/module/snd_sof_pci/parameters/sof_pci_debug:0
    /sys/module/snd_sof_pci/parameters/tplg_filename:(null)
    /sys/module/snd_sof_pci/parameters/tplg_path:(null)
    /sys/module/snd_sof_probes/parameters/enable:N
    /sys/module/snd_hda_codec/parameters/dump_coef:-1
    /sys/module/snd_hda_codec_hdmi/parameters/enable_acomp:Y
    /sys/module/snd_hda_codec_hdmi/parameters/enable_all_pins:N
    /sys/module/snd_hda_codec_hdmi/parameters/enable_silent_stream:Y
    /sys/module/snd_hda_codec_hdmi/parameters/static_hdmi_pcm:N
    /sys/module/snd_hda_core/parameters/gpu_bind:-1
    ----------------------------------------
    # dmidecode 3.3
    Getting SMBIOS data from sysfs.
    SMBIOS 3.2.0 present.
    
    Handle 0x0000, DMI type 0, 26 bytes
    BIOS Information
    	Vendor: American Megatrends Inc.
    	Version: UPW1AM18
    	Release Date: 06/12/2020
    	Address: 0xF0000
    	Runtime Size: 64 kB
    	ROM Size: 16 MB
    	Characteristics:
    		PCI is supported
    		BIOS is upgradeable
    		BIOS shadowing is allowed
    		Boot from CD is supported
    		Selectable boot is supported
    		BIOS ROM is socketed
    		EDD is supported
    		5.25"/1.2 MB floppy services are supported (int 13h)
    		3.5"/720 kB floppy services are supported (int 13h)
    		3.5"/2.88 MB floppy services are supported (int 13h)
    		Print screen service is supported (int 5h)
    		Serial services are supported (int 14h)
    		Printer services are supported (int 17h)
    		ACPI is supported
    		USB legacy is supported
    		BIOS boot specification is supported
    		Targeted content distribution is supported
    		UEFI is supported
    	BIOS Revision: 5.13
    
  5. removed their assignment
    on Mar 19, 2024
  6. changed the title [-]WHL: UpExtreme: 'Device busy' error [/-] [+]WHL: UpExtreme: iDisp3: ASoC: error at __soc_pcm_open on iDisp3: -16[/+] on Mar 19, 2024
  7. marc-hb commented on Mar 20, 2024

    @marc-hb
    Collaborator

    Thanks @ujfalusi and @plbossart for spotting this:

    Last successful runs were on sh-whl-upext-hda-01 (last successful run was 38874, March 14th)

    First failing run was 38915 on jf-whl-upext-hda-4 (March 15th)

    38998 failed on jf-whl-upext-hda-2 (March 19th)

  8. marc-hb commented on Mar 20, 2024

    @marc-hb
    Collaborator

    The failing aplay seems to be always on HDMI3 == hw:0,5

    One thing I know @fredoh9 did in JF is to use HDMI "stubs" to fake monitors and avoid Ubuntu issues thesofproject/sof-test#998

    Maybe this wasn't done in SH?

    Another thing: this can be reproduced easily but sometimes a fresh reboot is required to reproduce!

  9. 21 remaining items

  10. marc-hb commented on Mar 28, 2024

    @marc-hb
    Collaborator

    I never reproduced on jf-whl-upext-hda-3, did anyone or anything? I reproduced only with jf-...-hda-2 and jf-...-hda-4.

    It could have a different BIOS or different model of HDMI plug. I'll have a look when I get back to JF.

  11. plbossart commented on Mar 28, 2024

    @plbossart
    MemberAuthor

    Indeed the last test used jf-whl-upext-hda-4 and the issue is back. Those device-to-device variations are hard to track..

  12. marc-hb commented on Mar 30, 2024

    @marc-hb
    Collaborator

    So the reason why jf-whl-upext-hda-3 passed and the others failed is: jf-whl-upext-hda-3 is using a different HDMI stub that does not fake audio support. As soon as I swapped the HDMI stubs, the results followed the stubs.

    BUT, I also tested the failing stub on my APL UP2 and TGL UP xtreme and it did NOT cause any problem. So there is a problem specific to this WHL model. Reminder: the failure is NOT on the port connected to the HDMI stub. The failure is always on the last HDMI port used concurrently.

    Instead of that HDMI stub, I connected a monitor with audio to a failing board and found no failure and no audio issue.

    Here's the EDID for the HDMI stub that triggers the failure:

    sudo apt install read-edid
    sudo get-edid | parse-edid 
    
    
    	Identifier "             "
    	ModelName "             "
    	VendorName "CLB"
    	# Monitor Manufactured week 40 of 2013
    	# EDID version 1.3
    
    
  13. marc-hb commented on Apr 3, 2024

    @marc-hb
    Collaborator

    Very interesting and relevant HDMI audio facts learned after discussing with the local expert (thanks Clint!)

    • Don't use parse-edid because its output is incomplete. Notably: parse-edid does not show audio fields! Use edid-decode instead, which comes from a separate Debian/Ubuntu package.

    Do this:

    sudo apt install edid-decode
    
    sudo get-edid | edid-decode
    
      Underscans IT Video Formats by default
      Basic audio support
      Supports YCbCr 4:4:4
      ...
    
    • In HDMI, audio is MANDATORY. If a monitor has one HDMI input, then it MUST have at least an audio jack (EDID is not just for HDMI).

    • Hence the other, HDMI stub that hides this failure is NOT HDMI COMPLIANT! Because its EDID is missing any audio support (it's also reporting really weird display modes but that's hopefully irrelevant)

    I've been looking in the labs for a 3rd type of HDMI stub but I didn't find any yet. Ideally a compliant one with audio support.

  14. marc-hb commented on Apr 3, 2024

    @marc-hb
    Collaborator

    I've been looking in the labs for a 3rd type of HDMI stub but I didn't find any yet. Ideally a compliant one with audio support.

    No way to find a 3rd type.

    We can silence this failure by using on WHL only the (non compliant...) HDMI stub that does not support audio. Deal? It would only be hiding the failure, not solving it.

  15. marc-hb commented on Apr 4, 2024

    @marc-hb
    Collaborator

    We can silence this failure by using on WHL only the (non compliant...) HDMI stub that does not support audio. Deal? It would only be hiding the failure, not solving it.

    Done on jf-whl-*-hda2,3,4

  16. plbossart commented on Apr 5, 2024

    @plbossart
    MemberAuthor

    I am lost here.

    We have an issue with a HDMI compliant device which exposes audio, but "how compliant" is it if we get this error all the time?

  17. marc-hb commented on Apr 5, 2024

    @marc-hb
    Collaborator

    but "how compliant" is it if we get this error all the time?

    We get this error only on the WHL UP boards. Other boards with the same HDMI stub pass the test just fine, see above.

    Also, remember that the failure is NOT tied to the HDMI port where the stub is used, see above.

  18. plbossart commented on Apr 24, 2024

    @plbossart
    MemberAuthor

    I'll close this issue since it's a corner case we have no intention of fixing.

  19. ujfalusi commented on Apr 25, 2024

    @ujfalusi
    Collaborator

    FWIW, I had encountered an issue at home: HDMI CEC suddenly stopped working. My TV was not 'seeing' the AVR anymore and could not get ARC working.
    It got solved by disconnecting a NUC with WHL from the AVR...
    This might be a kernel regression, I think I had the NUC there for over a year and noticed oddities around January.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    HDAApplies to HD-Audio bus for codec connectionP3Low-impact bugs or featuresWHLApplies to WhiskeyLake platformdisplay audioAudio to HDMI/DisplayPort via HDA

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions