Repository navigation
[EHL][BUG]Dmesg shows "ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi1: -16" when do multi-pipleline stress test. #2084
Description
Describe the bug
Dmesg warning show "ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi1: -16" when aplay headset, DP and HMDI at the same time. "ctrl+c "the playback terminal can be freezed after issue occured and all pipelines can't work.
Note: Unplug/plug in power cable can recover.
Need some workaround on EHL when runtime PM keeps active after system reboot. Steps as below:
Add "i915.force_probe=4571" after kernel in "/boot/grub/grub.cfg" .(refer to issue #2061)
Eg. linux /boot/vmlinuz-5.7.0-rc3-default-validation-20200507-ehl-0-ad2331e root=UUID=77b6e30a-340a-4342-87b9-62028fb440b8 ro quiet nosplash i915.force_probe=4571
To Reproduce
1.Boot up system.
2.cd sof-test/test-case
3.export TPLG=/lib/firmware/intel/sof-tplg/ sof-ehl-rt5660.tplg
2. Run "./multiple-pipeline-playback.sh -c 8 -r -l 5". (https://github.com/thesofproject/sof-test/blob/master/test-case/multiple-pipeline-playback.sh)
[ 138.926918] snd_hda_codec_hdmi ehdaudio0D2: HDMI: ASP channel 0 => slot 0
[ 138.926986] snd_hda_codec_hdmi ehdaudio0D2: HDMI: ASP channel 1 => slot 1
[ 138.927049] snd_hda_codec_hdmi ehdaudio0D2: HDMI: ASP channel 15 => slot 2
[ 138.927102] snd_hda_codec_hdmi ehdaudio0D2: HDMI: ASP channel 15 => slot 3
[ 138.927153] snd_hda_codec_hdmi ehdaudio0D2: HDMI: ASP channel 15 => slot 4
[ 138.927207] snd_hda_codec_hdmi ehdaudio0D2: HDMI: ASP channel 15 => slot 5
[ 138.927256] snd_hda_codec_hdmi ehdaudio0D2: HDMI: ASP channel 15 => slot 6
[ 138.927311] snd_hda_codec_hdmi ehdaudio0D2: HDMI: ASP channel 15 => slot 7
[ 138.928510] snd_hda_codec_hdmi ehdaudio0D2: hdmi_pin_hbr_setup: NID=0x6, pinctl=0x40
[ 138.928612] snd_hda_codec_hdmi ehdaudio0D2: hda_codec_setup_stream: NID=0x3, stream=0x2, channel=0, format=0x31
[ 138.932429] sof-audio-pci 0000:00:1f.3: In hda_link_pcm_trigger cmd=1
[ 138.932442] sof-audio-pci 0000:00:1f.3: pcm: trigger stream 4 dir 0 cmd 1
[ 138.932849] sof-audio-pci 0000:00:1f.3: FW Poll Status: reg=0x24001e successful
[ 138.932857] sof-audio-pci 0000:00:1f.3: ipc tx: 0x60040000: GLB_STREAM_MSG: TRIG_START
[ 138.933023] sof-audio-pci 0000:00:1f.3: ipc tx succeeded: 0x60040000: GLB_STREAM_MSG: TRIG_START
[ 139.628620] sof-audio-pci 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG
[ 139.628653] sof-audio-pci 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG
[ 140.128594] sof-audio-pci 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG
[ 140.128627] sof-audio-pci 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG
[ 141.528500] snd_hda_codec_hdmi ehdaudio0D2: ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi1: -16
[ 141.528505] snd_hda_codec_hdmi ehdaudio0D2: ASoC: can't open DAI intel-hdmi-hifi1: -16
Reproduce rate
5/5
Expected result
Aplay headset, DP and HMDI at the same time should no error.
Actual result
Dmesg warning show "ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi1: -16" when aplay headset, DP and HMDI at the same time.
Test recipe
Kernel:https://github.com/thesofproject/linux/commits/topic/sof-dev commit:c05a3f86 and add below 2 patches for add codec acpi
0001-ASoC-rt5660-Add-the-codec-ID-of-EHL-CRB.patch.txt
0002-ehl-use-intc-codec-id.patch.txt
FW: https://github.com/thesofproject/sof/commits/v1.5 commit: 7e6cd4b0
Tplg: sof-ehl-rt5660.tplg
Platform:EHL RVP with RT5660 in I2S mode
Activity
[-][EHL][BUG][BUG][TGL][SDW]Dmesg warning show "ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi1: -16" when aplay headset, DP and HMDI at the same time.[/-][+][EHL][BUG]Dmesg warning show "ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi1: -16" when aplay headset, DP and HMDI at the same time.[/+]sinahuang commentedon May 8, 2020
Issue also can be reproduced with master(commit:2c9bb63) and sof-dev(commit:c05a3f86) when do multi pipeline stress test.
[-][EHL][BUG]Dmesg warning show "ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi1: -16" when aplay headset, DP and HMDI at the same time.[/-][+][EHL][BUG]Dmesg shows "ASoC: error at snd_soc_dai_startup on intel-hdmi-hifi1: -16" when do multi-pipleline stress test.[/+]sinahuang commentedon May 12, 2020
Issue also can be reproduced on another EHL RVP with RT5660 in I2S mode when do multi pipeline stress test.
sinahuang commentedon May 29, 2020
Issue also can be reproduced with sof-dev+master on TGL-U RVP with codec ALC711 and RT1308 in SDW mode. "ctrl+c "playback terminal can be freezed after issue occured and all pipelines can't work.
Test steps:
1.Boot up system.
2.cd sof-test/test-case
3.export TPLG=/lib/firmware/intel/sof-tplg/sof-tgl-rt711-rt1308.tplg
2. Run "./multiple-pipeline-playback.sh -c 9 -r -l 10". (https://github.com/thesofproject/sof-test/blob/master/test-case/multiple-pipeline-playback.sh)
sof_trace.log
dmesg.log
sinahuang commentedon Jun 2, 2020
Issue also can be reproduced with sof-dev+master on JSL-RVP with ALC700 in HDA mode when do multi-pipeline stress test.
libinyang commentedon Jun 2, 2020
This is wrong. It should be sof-ehl-xxx.tplg
libinyang commentedon Jun 2, 2020
And it seems the bios is set wrongly.
sinahuang commentedon Jun 2, 2020
Sorry for writing the wrong TPLG in the describe. But I reproduced it with sof-ehl-rt5660.tplg
Test with latest sof-dev +master, issue still can be reproduced.
1 remaining item
sinahuang commentedon Jun 3, 2020
Error can be seen with PR thesofproject/sof#2886 after pulseaudio disabled.
kv2019i commentedon Jun 3, 2020
This does not look right:
Apr 3 06:18:05 ubuntu-Tiger-Lake-Client-Platform kernel: [ 60.574153] snd_hda_codec_hdmi ehdaudio0D2: choose cvt 1 for pin nid 6
Apr 3 06:18:05 ubuntu-Tiger-Lake-Client-Platform kernel: [ 60.576111] snd_hda_codec_hdmi ehdaudio0D2: HDMI: hinfo 00000000b2233cbd not registered
Apr 3 06:18:05 ubuntu-Tiger-Lake-Client-Platform kernel: [ 60.576363] snd_hda_codec_hdmi ehdaudio0D2: choose cvt 2 for pin nid 6
Using same nid==6 would be ok if both monitors are connected via DP-MST, but this bug was with mix of HDMI and DP, so it can't be that, so something else has gone wrong.
@sinahuang I'd need a few more logs:
options drm debug=0x1e
drm.debug=0x1e
sinahuang commentedon Jun 4, 2020
Attached drm log and alsa info on TGL-U RVP with two monitors connected.
drm.log
sof_trace.log
amixer.txt
sinahuang commentedon Jun 9, 2020
Output of "alsa-info" on EHL RVP as below when two monitors are connected.
kv2019i commentedon Jun 11, 2020
Thanks for the logs. DRM logs seem good, nothing pops up. So looks like a SOF driver side issue, continuing to investigate.
kv2019i commentedon Jun 16, 2020
Suspected rootcause is this -> #2159 (comment) -- no fix candidate yet.
kv2019i commentedon Jun 17, 2020
#2208 is a potential fix for this as well. @sinahuang Due to other issues, I could not verify this on a EHL device yet, so if you could check that would be great.
sinahuang commentedon Jun 18, 2020
Verified with PR #2208, error info are different from original issue when do multi-pipeline stress test, dmesg shows as below:
First round, failed at 1st time
2nd round , failed at 4th time
And now after issue occurred aplay all pipelines again all pipelines can work well.
drm.log
kv2019i commentedon Jun 18, 2020
@sinahuang Thank you for testing! Does the test itself also fail or do you just get the error messages in the dmesg output? When this error print is now emitted, the application has tried to open a PCM that has no connected PCM. I wonder if the test case does this? Then it would be as expected to get error for the one converter that is not connected. If test fails on the PCM nodes that are connected, then there is still more issues to debug.
sinahuang commentedon Jun 18, 2020
HDMI Dhw:0,4 is connected, HDMI port DHW:0,3 is not connected. Run aplay Dhw:0,3 for 50 times, error not seen. run aplay Dhw:0,4 for 50 times error also not seen. Seems issue only can be reproduced via multi_pipline stress test which contains unconnected HDMI port .
Reproduced with command "./multiple-pipeline-playback.sh -c 8 -r -l 10"
kv2019i commentedon Jun 22, 2020
@sinahuang This patch for addressing the warning might help with the multiple-pipeline test:
#2223
sinahuang commentedon Jun 23, 2020
Split to track error warning issue by #2216.
Test on JSL and EHL with PR #2223, multiple-pipeline test still can be failed and dmesg as below:
dmesg_mul.log