]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ASoC: davinci-pcm: extract period elapsed functions
authorBen Gardiner <bengardiner@nanometrics.ca>
Tue, 24 May 2011 18:50:19 +0000 (14:50 -0400)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 25 May 2011 11:14:31 +0000 (19:14 +0800)
Extract functions that modify the prtd->period member in preparation for
conversion to BATCH mode playback.

Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca>
Reviewed-by: Steven Faludi <stevenfaludi@nanometrics.ca>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/davinci/davinci-pcm.c

index 5d9269a5176184ef79144ce6f9cef1ebfac3f1e1..fedca81b67b4d29d7f741f71afd4e7830169ff84 100644 (file)
@@ -155,6 +155,22 @@ struct davinci_runtime_data {
        struct edmacc_param ram_params;
 };
 
+static void davinci_pcm_period_elapsed(struct snd_pcm_substream *substream)
+{
+       struct davinci_runtime_data *prtd = substream->runtime->private_data;
+       struct snd_pcm_runtime *runtime = substream->runtime;
+
+       prtd->period++;
+       if (unlikely(prtd->period >= runtime->periods))
+               prtd->period = 0;
+}
+
+static void davinci_pcm_period_reset(struct snd_pcm_substream *substream)
+{
+       struct davinci_runtime_data *prtd = substream->runtime->private_data;
+
+       prtd->period = 0;
+}
 /*
  * Not used with ping/pong
  */
@@ -216,9 +232,7 @@ static void davinci_pcm_enqueue_dma(struct snd_pcm_substream *substream)
                edma_set_transfer_params(link, acnt, fifo_level, count,
                                                        fifo_level, ABSYNC);
 
-       prtd->period++;
-       if (unlikely(prtd->period >= runtime->periods))
-               prtd->period = 0;
+       davinci_pcm_period_elapsed(substream);
 }
 
 static void davinci_pcm_dma_irq(unsigned link, u16 ch_status, void *data)
@@ -591,7 +605,7 @@ static int davinci_pcm_prepare(struct snd_pcm_substream *substream)
 
                return 0;
        }
-       prtd->period = 0;
+       davinci_pcm_period_reset(substream);
        davinci_pcm_enqueue_dma(substream);
 
        /* Copy self-linked parameter RAM entry into master channel */