ASoC: OMAP4 PCM - make sure self linked DMA is really stopped (fixme)

Make sure OMAP self linked DMA is really stopped.

FIXME: this needs a counter so we dont lock up.

Signed-off-by: Liam Girdwood <lrg@ti.com>
This commit is contained in:
Liam Girdwood
2011-02-03 18:17:34 +00:00
committed by Sebastien Guiriec
parent 04ecb6286d
commit 25ec3e86d2

View File

@@ -235,6 +235,11 @@ 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;