summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/soc/fsl/fsl_rpmsg_i2s.c1
-rw-r--r--sound/soc/fsl/imx-pcm-rpmsg.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/fsl/fsl_rpmsg_i2s.c b/sound/soc/fsl/fsl_rpmsg_i2s.c
index 172c279c7f94..d8f8da8dbf23 100644
--- a/sound/soc/fsl/fsl_rpmsg_i2s.c
+++ b/sound/soc/fsl/fsl_rpmsg_i2s.c
@@ -196,6 +196,7 @@ static int fsl_rpmsg_i2s_suspend(struct device *dev)
struct i2s_rpmsg_s *rpmsg_tx;
struct i2s_rpmsg_s *rpmsg_rx;
+ flush_workqueue(i2s_info->rpmsg_wq);
rpmsg_tx = &i2s_info->send_msg[SNDRV_PCM_STREAM_PLAYBACK];
rpmsg_rx = &i2s_info->send_msg[SNDRV_PCM_STREAM_CAPTURE];
diff --git a/sound/soc/fsl/imx-pcm-rpmsg.c b/sound/soc/fsl/imx-pcm-rpmsg.c
index 25369cc0fade..ace3bd77c8c2 100644
--- a/sound/soc/fsl/imx-pcm-rpmsg.c
+++ b/sound/soc/fsl/imx-pcm-rpmsg.c
@@ -149,6 +149,8 @@ static int imx_rpmsg_pcm_close(struct snd_pcm_substream *substream)
rpmsg->header.cmd = I2S_TX_CLOSE;
else
rpmsg->header.cmd = I2S_RX_CLOSE;
+
+ flush_workqueue(i2s_info->rpmsg_wq);
i2s_info->send_message(rpmsg, i2s_info);
kfree(prtd);