diff options
author | Lionel Xu <Lionel.Xu@freescale.com> | 2010-05-18 15:31:20 +0800 |
---|---|---|
committer | Lionel Xu <Lionel.Xu@freescale.com> | 2010-06-24 11:11:58 +0800 |
commit | a7163ded1ae272c24e275337a646b97f2da778d7 (patch) | |
tree | 36ab28a1cc7a453ac9942b66567ff9fdcd68898e /sound | |
parent | b81f7d8c9afac0ab78742fc511bdcd5e4bf84710 (diff) |
ENGR00122302 MX23 ALSA: Resolve the failure when pausing and resuming playback
To reslove the problem when resuming a playback from pausing
Signed-off-by: Lionel Xu <r63889@freescale.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/mxs/mxs-adc.c | 1 | ||||
-rw-r--r-- | sound/soc/mxs/mxs-pcm.c | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/sound/soc/mxs/mxs-adc.c b/sound/soc/mxs/mxs-adc.c index af2cbbdc0c58..44e04d64ff27 100644 --- a/sound/soc/mxs/mxs-adc.c +++ b/sound/soc/mxs/mxs-adc.c @@ -224,6 +224,7 @@ static int mxs_adc_trigger(struct snd_pcm_substream *substream, /* disable the fifo error interrupt */ __raw_writel(BM_AUDIOOUT_CTRL_FIFO_ERROR_IRQ_EN, REGS_AUDIOOUT_BASE + HW_AUDIOOUT_CTRL_CLR); + mdelay(50); } else __raw_writel(BM_AUDIOIN_CTRL_RUN, diff --git a/sound/soc/mxs/mxs-pcm.c b/sound/soc/mxs/mxs-pcm.c index a9f0358687f4..f3cdcdbd2861 100644 --- a/sound/soc/mxs/mxs-pcm.c +++ b/sound/soc/mxs/mxs-pcm.c @@ -141,6 +141,7 @@ static int mxs_pcm_prepare(struct snd_pcm_substream *substream) /* Link with previous command */ prtd->dma_desc_array[i]->cmd.cmd.bits.bytes = prtd->dma_period; prtd->dma_desc_array[i]->cmd.cmd.bits.irq = 1; + prtd->dma_desc_array[i]->cmd.cmd.bits.dec_sem = 0; prtd->dma_desc_array[i]->cmd.cmd.bits.chain = 1; /* Set DMA direction */ if (playback) @@ -194,6 +195,8 @@ static void mxs_pcm_stop(struct snd_pcm_substream *substream) prtd->dma_desc_array[(desc + 1)%8]->cmd.cmd.bits.command = NO_DMA_XFER; mxs_dma_unfreeze(prtd->dma_ch); + + mxs_dma_disable(prtd->dma_ch); } static int mxs_pcm_trigger(struct snd_pcm_substream *substream, int cmd) |