ASoC: rsnd: fixup pcm_new callback method
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 31 Jul 2014 06:53:03 +0000 (23:53 -0700)
committerMark Brown <broonie@linaro.org>
Thu, 31 Jul 2014 19:36:34 +0000 (20:36 +0100)
bff58ea4f43d9b4a9fd6fb05fabc8f50f68131f5
(ASoC: rsnd: add DVC support) added DVC support,
and it added pcm_new callback feature for it.
Then it called all DAI's pcm_new callback, and it was wrong.
This patch fixup it and call correct callback.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/sh/rcar/core.c

index f07742f1eb11ad07c9c31c7c0a73b9bdf727ea3d..d7c669790dd417a4c96367043d7d176d8645ff71 100644 (file)
@@ -944,19 +944,17 @@ static struct snd_pcm_ops rsnd_pcm_ops = {
 
 static int rsnd_pcm_new(struct snd_soc_pcm_runtime *rtd)
 {
-       struct rsnd_priv *priv = snd_soc_dai_get_drvdata(rtd->cpu_dai);
-       struct rsnd_dai *rdai;
-       int i, ret;
+       struct snd_soc_dai *dai = rtd->cpu_dai;
+       struct rsnd_dai *rdai = rsnd_dai_to_rdai(dai);
+       int ret;
 
-       for_each_rsnd_dai(rdai, priv, i) {
-               ret = rsnd_dai_call(pcm_new, &rdai->playback, rdai, rtd);
-               if (ret)
-                       return ret;
+       ret = rsnd_dai_call(pcm_new, &rdai->playback, rdai, rtd);
+       if (ret)
+               return ret;
 
-               ret = rsnd_dai_call(pcm_new, &rdai->capture, rdai, rtd);
-               if (ret)
-                       return ret;
-       }
+       ret = rsnd_dai_call(pcm_new, &rdai->capture, rdai, rtd);
+       if (ret)
+               return ret;
 
        return snd_pcm_lib_preallocate_pages_for_all(
                rtd->pcm,