diff options
Diffstat (limited to 'sound/soc/intel/avs/pcm.c')
| -rw-r--r-- | sound/soc/intel/avs/pcm.c | 3 | 
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/intel/avs/pcm.c b/sound/soc/intel/avs/pcm.c index d31058e2de5b..80c001120cdd 100644 --- a/sound/soc/intel/avs/pcm.c +++ b/sound/soc/intel/avs/pcm.c @@ -651,6 +651,7 @@ static void avs_dai_fe_shutdown(struct snd_pcm_substream *substream, struct snd_  	data = snd_soc_dai_get_dma_data(dai, substream); +	disable_work_sync(&data->period_elapsed_work);  	snd_hdac_ext_stream_release(data->host_stream, HDAC_EXT_STREAM_TYPE_HOST);  	avs_dai_shutdown(substream, dai);  } @@ -754,6 +755,8 @@ static int avs_dai_fe_prepare(struct snd_pcm_substream *substream, struct snd_so  	data = snd_soc_dai_get_dma_data(dai, substream);  	host_stream = data->host_stream; +	if (runtime->state == SNDRV_PCM_STATE_XRUN) +		hdac_stream(host_stream)->prepared = false;  	if (hdac_stream(host_stream)->prepared)  		return 0;  | 
