diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/mxs/mxs-adc.c | 1 | ||||
-rw-r--r-- | sound/soc/mxs/mxs-pcm.c | 12 |
2 files changed, 8 insertions, 5 deletions
diff --git a/sound/soc/mxs/mxs-adc.c b/sound/soc/mxs/mxs-adc.c index cf6eb364f694..6733652f76bc 100644 --- a/sound/soc/mxs/mxs-adc.c +++ b/sound/soc/mxs/mxs-adc.c @@ -321,6 +321,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 { if (adc_ramp_done == 0) { cancel_delayed_work(&adc_ramp_work); diff --git a/sound/soc/mxs/mxs-pcm.c b/sound/soc/mxs/mxs-pcm.c index 198f1e5201fa..b4d7ca00a68f 100644 --- a/sound/soc/mxs/mxs-pcm.c +++ b/sound/soc/mxs/mxs-pcm.c @@ -183,11 +183,13 @@ static void mxs_pcm_stop(struct snd_pcm_substream *substream) desc = 0; /* Set up the next descriptor to decrement DMA channel sempahore */ - prtd->dma_desc_array[(desc + 1)%8]->cmd.cmd.bits.bytes = 0; - prtd->dma_desc_array[(desc + 1)%8]->cmd.cmd.bits.pio_words = 0; - prtd->dma_desc_array[(desc + 1)%8]->cmd.cmd.bits.dec_sem = 1; - prtd->dma_desc_array[(desc + 1)%8]->cmd.cmd.bits.irq = 0; - prtd->dma_desc_array[(desc + 1)%8]->cmd.cmd.bits.command = NO_DMA_XFER; + prtd->dma_desc_array[(desc + 1)%periods_num]->cmd.cmd.bits.bytes = 0; + prtd->dma_desc_array[(desc + 1)%periods_num]->cmd.cmd.bits.pio_words = \ + 0; + prtd->dma_desc_array[(desc + 1)%periods_num]->cmd.cmd.bits.dec_sem = 1; + prtd->dma_desc_array[(desc + 1)%periods_num]->cmd.cmd.bits.irq = 0; + prtd->dma_desc_array[(desc + 1)%periods_num]->cmd.cmd.bits.command = \ + NO_DMA_XFER; mxs_dma_unfreeze(prtd->dma_ch); |