ASoC/mpc5200: add to_psc_dma_stream() helper
authorGrant Likely <grant.likely@secretlab.ca>
Sat, 7 Nov 2009 08:34:31 +0000 (01:34 -0700)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sat, 7 Nov 2009 12:40:09 +0000 (12:40 +0000)
Move the resolving of the psc_dma_stream pointer to a helper function
to reduce duplicate code

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/fsl/mpc5200_dma.c
sound/soc/fsl/mpc5200_dma.h

index 658e3fa146633870803d0d516d9c6a8b5c97b4f7..9c88e15ce693a127cf711c5b5b3c8633146c0d32 100644 (file)
@@ -133,17 +133,12 @@ static int psc_dma_trigger(struct snd_pcm_substream *substream, int cmd)
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct psc_dma *psc_dma = rtd->dai->cpu_dai->private_data;
        struct snd_pcm_runtime *runtime = substream->runtime;
-       struct psc_dma_stream *s;
+       struct psc_dma_stream *s = to_psc_dma_stream(substream, psc_dma);
        struct mpc52xx_psc __iomem *regs = psc_dma->psc_regs;
        u16 imr;
        unsigned long flags;
        int i;
 
-       if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE)
-               s = &psc_dma->capture;
-       else
-               s = &psc_dma->playback;
-
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_START:
                dev_dbg(psc_dma->dev, "START: stream=%i fbits=%u ps=%u #p=%u\n",
index c6f29e4d093cf7b0274c02e7b98e73a335c3da1b..956d6a5f5a8cb5c6d0ce4c9d615ff8e0d1c69230 100644 (file)
@@ -68,6 +68,15 @@ struct psc_dma {
        } stats;
 };
 
+/* Utility for retrieving psc_dma_stream structure from a substream */
+inline struct psc_dma_stream *
+to_psc_dma_stream(struct snd_pcm_substream *substream, struct psc_dma *psc_dma)
+{
+       if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE)
+               return &psc_dma->capture;
+       return &psc_dma->playback;
+}
+
 int mpc5200_audio_dma_create(struct of_device *op);
 int mpc5200_audio_dma_destroy(struct of_device *op);