| From 3d14d6ad95c0a1de443f66fd3bc24c24e18d065e Mon Sep 17 00:00:00 2001 |
| From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Date: Wed, 30 Jul 2014 23:53:03 -0700 |
| Subject: ASoC: rsnd: fixup pcm_new callback method |
| |
| 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 | 20 +++++++++----------- |
| 1 file changed, 9 insertions(+), 11 deletions(-) |
| |
| diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c |
| index f07742f1eb11..d7c669790dd4 100644 |
| --- a/sound/soc/sh/rcar/core.c |
| +++ b/sound/soc/sh/rcar/core.c |
| @@ -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, |
| -- |
| 2.1.2 |
| |