summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjassi brar <jassisinghbrar@gmail.com>2010-02-22 15:59:02 +0900
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-02-22 14:15:15 +0000
commit10cab262f49ee4574a20ab4c445bc4fdc41c36a8 (patch)
treeca7242796d35338845dbe1a3a0574129022f2ec5
parentd273ebe77a780d3aba1f5b86615af3b0e87b76bf (diff)
downloadlinux-10cab262f49ee4574a20ab4c445bc4fdc41c36a8.tar.bz2
ASoC: Change how suspend and resume obtain the PCM runtime
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>
-rw-r--r--sound/soc/atmel/atmel-pcm.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sound/soc/atmel/atmel-pcm.c b/sound/soc/atmel/atmel-pcm.c
index 67a32920af22..fdb255372127 100644
--- a/sound/soc/atmel/atmel-pcm.c
+++ b/sound/soc/atmel/atmel-pcm.c
@@ -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;