summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorLionel Xu <Lionel.Xu@freescale.com>2010-05-18 15:31:20 +0800
committerJustin Waters <justin.waters@timesys.com>2010-12-17 12:10:40 -0500
commit9443cba55beacfae5deb9781d97773b50424a891 (patch)
tree36ab28a1cc7a453ac9942b66567ff9fdcd68898e /sound
parent8f629f1c217c1f945055e77c24e52d656856bc99 (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.c1
-rw-r--r--sound/soc/mxs/mxs-pcm.c3
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)