ASoC: SOF: pcm: harden PCM STOP sequence
authorPan Xiuli <xiuli.pan@linux.intel.com>
Fri, 27 Sep 2019 20:05:31 +0000 (15:05 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 1 Oct 2019 17:31:25 +0000 (18:31 +0100)
commit0a1b08345bc5d9214dc701f8ec5d67c473fab735
tree290254dc86c6be914423be208c09ea7ae97ae06f
parente66e52c5b7422824cedf0084c0766602dea7e8a7
ASoC: SOF: pcm: harden PCM STOP sequence

The old STOP sequence is: 1. stop DMA 2. send STOP ipc
If delay happen before the steps 1 and 2, the DMA buffer will be empty in
short time and cause pipeline xrun then stop the pipeline.
Then the step 2 ipc stop will return error as pipeline is already stopped.

Suggested change to avoid the issue is to switch the order of steps 1 and 2
for the stop sequence.

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20190927200538.660-7-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/pcm.c