summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorAisheng.Dong <b29396@freescale.com>2010-08-19 15:53:12 +0800
committerJustin Waters <justin.waters@timesys.com>2010-12-13 16:09:44 -0500
commita7b2cf8fead912f36ca80a6a3f401cb7f5cd700d (patch)
tree0de67f86a198a3c78a124d2a12c9f44616495452 /sound
parentdc83b838edf521816f86b8498fce66f8b3a5c069 (diff)
ENGR00126331 MX28 ALSA: fix 11Khz and 22KHz stream playback issue
For playing 11Khz and 22Khz stream, currently the DMA may be in an abnormal state during mxs_pcm_close phase which causes the SAIF clock to be disabed unexpectedly. Thereafter audio codec will be unable work again and system hangs. Add reset operation for DMA before release it to make sure in a right state to avoid this issue. Signed-off-by: Aisheng.Dong <b29396@freescale.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/mxs/mxs-pcm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/soc/mxs/mxs-pcm.c b/sound/soc/mxs/mxs-pcm.c
index 768dd54a89db..6ce4a18efeb5 100644
--- a/sound/soc/mxs/mxs-pcm.c
+++ b/sound/soc/mxs/mxs-pcm.c
@@ -379,6 +379,7 @@ static int mxs_pcm_close(struct snd_pcm_substream *substream)
free_irq(prtd->params->irq, substream);
mxs_dma_get_cooked(prtd->dma_ch, &list);
/* Free DMA channel*/
+ mxs_dma_reset(prtd->dma_ch);
for (desc = 0; desc < desc_num; desc++)
mxs_dma_free_desc(prtd->dma_desc_array[desc]);
mxs_dma_release(prtd->dma_ch, mxs_pcm_dev);