From: Hari Nagalla <hnagalla@xxxxxx> While using self linking, there is a chance that the DMA has re-enabled the channel just after disabling it. This patch stops the OMAP4 DMA re-enabling after stoping the DMA channel. Signed-off-by: Hari Nagalla <hnagalla@xxxxxx> Signed-off-by: Margarita Olaya Cabrera <magi.olaya@xxxxxx> --- sound/soc/omap/omap-pcm.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c index 6a21447..afe91ad 100644 --- a/sound/soc/omap/omap-pcm.c +++ b/sound/soc/omap/omap-pcm.c @@ -234,6 +234,13 @@ static int omap_pcm_trigger(struct snd_pcm_substream *substream, int cmd) case SNDRV_PCM_TRIGGER_PAUSE_PUSH: prtd->period_index = -1; omap_stop_dma(prtd->dma_ch); + /* + * Since we are using self linking, there is a + * chance that the DMA as re-enabled the channel + * just after disabling it. + */ + while (omap_get_dma_active_status(prtd->dma_ch)) + omap_stop_dma(prtd->dma_ch); break; default: ret = -EINVAL; -- 1.7.0.4 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel