ASoC: DaVinci: use edma_pause, edma_resume
authorTroy Kisky <troy.kisky@boundarydevices.com>
Thu, 19 Nov 2009 00:49:54 +0000 (17:49 -0700)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 19 Nov 2009 10:48:27 +0000 (10:48 +0000)
Use edma_pause and edma_resume to make missing dma_events
less likely. This may not be needed, but it looks better.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/davinci/davinci-pcm.c

index 664d493..ad4d7f4 100644 (file)
@@ -528,12 +528,12 @@ static int davinci_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
        case SNDRV_PCM_TRIGGER_START:
        case SNDRV_PCM_TRIGGER_RESUME:
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-               edma_start(prtd->asp_channel);
+               edma_resume(prtd->asp_channel);
                break;
        case SNDRV_PCM_TRIGGER_STOP:
        case SNDRV_PCM_TRIGGER_SUSPEND:
        case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-               edma_stop(prtd->asp_channel);
+               edma_pause(prtd->asp_channel);
                break;
        default:
                ret = -EINVAL;
@@ -568,6 +568,7 @@ static int davinci_pcm_prepare(struct snd_pcm_substream *substream)
                        /* copy 1st iram buffer */
                        edma_start(prtd->ram_channel);
                }
+               edma_start(prtd->asp_channel);
                return 0;
        }
        prtd->period = 0;
@@ -577,6 +578,7 @@ static int davinci_pcm_prepare(struct snd_pcm_substream *substream)
        edma_read_slot(prtd->asp_link[0], &prtd->asp_params);
        edma_write_slot(prtd->asp_channel, &prtd->asp_params);
        davinci_pcm_enqueue_dma(substream);
+       edma_start(prtd->asp_channel);
 
        return 0;
 }