diff options
author | Aisheng.Dong <b29396@freescale.com> | 2010-08-19 15:53:12 +0800 |
---|---|---|
committer | Alan Tull <r80115@freescale.com> | 2010-09-25 09:51:15 -0500 |
commit | dea5921d2ea32b809939edc66a4d555c3b2e72e0 (patch) | |
tree | 0de67f86a198a3c78a124d2a12c9f44616495452 /sound | |
parent | 281099e8078fa6b590517104ba32b275fba921fe (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.c | 1 |
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); |