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)
committerStephane Desneux <stephane.desneux@open.eurogiciel.org>
Wed, 4 Feb 2015 10:15:45 +0000 (11:15 +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>
(cherry picked from commit 7c63f3c02f5a998621758239abed43c5bd454b70)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
sound/soc/sh/rcar/core.c

index ba75a3a..60a152f 100644 (file)
@@ -943,19 +943,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,