aboutsummaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorAisheng.Dong <b29396@freescale.com>2010-08-19 15:53:12 +0800
committerAlan Tull <r80115@freescale.com>2010-09-25 09:51:15 -0500
commitdea5921d2ea32b809939edc66a4d555c3b2e72e0 (patch)
tree0de67f86a198a3c78a124d2a12c9f44616495452 /sound
parent281099e8078fa6b590517104ba32b275fba921fe (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 768dd54a89d..6ce4a18efeb 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);