Re: snd_hda_intel/sst-acpi sound breakage on suspend/resume since 5.6-rc1

From: Cezary Rojewski
Date: Wed Mar 18 2020 - 14:28:03 EST


On 2020-03-18 17:20, Dominik Brodowski wrote:
On Wed, Mar 18, 2020 at 10:13:54AM -0500, Pierre-Louis Bossart wrote:
While 5.5.x works fine, mainline as of ac309e7744be (v5.6-rc6+) causes me
some sound-related trouble: after boot, the sound works fine -- but once I
suspend and resume my broadwell-based XPS13, I need to switch to headphone
and back to speaker to hear something. But what I hear isn't music but
garbled output.


I had (see 18d78b64fddc), but not any more in years (and I'd like to keep
using I2S, which has worked flawlessly in these years).


Due to pandemic I'm working remotely and right now won't be able to test audio quality so focusing on the stream==NULL issue. And thus we got to help each other out : )

Could you verify issue reproduces on 5.6.0-rc1 on your machine? On my RVPs looks like it does. There is one more thing that worries me. After enabling dbg logs I see some IPCs queried but not delivered (dsp busy):

[ 170.330009] snd_soc_core:dpcm_fe_dai_prepare: System PCM: ASoC: prepare FE System PCM
[ 170.330019] snd_soc_core:dpcm_be_dai_prepare: Codec: ASoC: prepare BE Codec
[ 170.347068] snd_soc_core:dpcm_dapm_stream_event: Codec: ASoC: BE Codec event 1 dir 0
[ 170.348814] snd_soc_core:dpcm_do_trigger: Codec: ASoC: trigger BE Codec cmd 1
[ 170.348826] snd_soc_core:dpcm_dai_trigger_fe_be: System PCM: ASoC: post trigger FE System PCM cmd 1
[ 170.348839] snd_soc_sst_ipc:ipc_tx_msgs: haswell-pcm-audio haswell-pcm-audio: ipc_tx_msgs dsp busy
[ 182.583710] System PCM: ASoC: trigger FE cmd: 7 failed: -22
[ 182.583811] snd_soc_core:dpcm_dai_trigger_fe_be: System PCM: ASoC: pre trigger FE System PCM cmd 0
[ 182.583839] snd_soc_core:dpcm_do_trigger: Codec: ASoC: trigger BE Codec cmd 0
[ 182.583862] snd_soc_core:dpcm_fe_dai_hw_free: System PCM: ASoC: hw_free FE System PCM
[ 182.583872] snd_soc_core:dpcm_be_dai_hw_free: Codec: ASoC: hw_free BE Codec
[ 182.584127] snd_soc_core:dpcm_fe_dai_hw_free: System PCM: ASoC: hw_free FE System PCM
[ 182.584144] snd_soc_core:dpcm_be_dai_hw_free: Codec: ASoC: hw_free BE Codec
[ 182.584161] snd_soc_core:dpcm_be_dai_shutdown: Codec: ASoC: close BE Codec
[ 182.584211] snd_soc_sst_ipc:ipc_tx_msgs: haswell-pcm-audio haswell-pcm-audio: ipc_tx_msgs dsp busy
[ 182.587411] snd_soc_core:dpcm_fe_dai_shutdown: System PCM: ASoC: close FE System PCM
[ 182.587427] haswell-pcm-audio haswell-pcm-audio: warning: stream is NULL, no stream to reset, ignore it.
[ 182.587435] haswell-pcm-audio haswell-pcm-audio: warning: stream is NULL, no stream to free, ignore it.
[ 182.587451] snd_soc_core:dpcm_be_disconnect: System PCM: ASoC: BE playback disconnect check for Codec
[ 182.587460] snd_soc_core:dpcm_be_disconnect: System PCM: freed DSP playback path System PCM -> Codec
[ 187.626116] snd_soc_core:snd_soc_close_delayed_work: System PCM: ASoC: pop wq checking: Playback status: inactive waiting: yes

Will be scanning IPCs now. Seems like regression has been introduced immediately in 5.6.0-rc1 as linux-stable 5.5.7 works just fine for me.

Regards,
Czarek