ASoC: Change how suspend and resume obtain the PCM runtime
authorjassi brar <jassisinghbrar@gmail.com>
Mon, 22 Feb 2010 06:59:02 +0000 (15:59 +0900)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 22 Feb 2010 14:15:15 +0000 (14:15 +0000)
Currently only the atmel driver make use of snd_soc_dai.runtime field.
If the dais are to be shared among two or more dai_links, the field
must be got rid of.
So, in atmel driver reach the substream via dai_link->pcm so as to
not depend of snd_soc_dai.runtime field.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/atmel/atmel-pcm.c

index 67a32920af22e948b2aa601224001d3969174456..fdb2553721273b8b2f5423fd676e635e1b15c380 100644 (file)
@@ -417,8 +417,10 @@ static void atmel_pcm_free_dma_buffers(struct snd_pcm *pcm)
 #ifdef CONFIG_PM
 static int atmel_pcm_suspend(struct snd_soc_dai_link *dai_link)
 {
-       struct snd_soc_dai *dai = dai_link->cpu_dai;
-       struct snd_pcm_runtime *runtime = dai->runtime;
+       struct snd_pcm *pcm = dai_link->pcm;
+       struct snd_pcm_str *stream = &pcm->streams[0];
+       struct snd_pcm_substream *substream = stream->substream;
+       struct snd_pcm_runtime *runtime = substream->runtime;
        struct atmel_runtime_data *prtd;
        struct atmel_pcm_dma_params *params;
 
@@ -442,8 +444,10 @@ static int atmel_pcm_suspend(struct snd_soc_dai_link *dai_link)
 
 static int atmel_pcm_resume(struct snd_soc_dai_link *dai_link)
 {
-       struct snd_soc_dai *dai = dai_link->cpu_dai;
-       struct snd_pcm_runtime *runtime = dai->runtime;
+       struct snd_pcm *pcm = dai_link->pcm;
+       struct snd_pcm_str *stream = &pcm->streams[0];
+       struct snd_pcm_substream *substream = stream->substream;
+       struct snd_pcm_runtime *runtime = substream->runtime;
        struct atmel_runtime_data *prtd;
        struct atmel_pcm_dma_params *params;