aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/sh
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2015-10-26 04:41:53 -0400
committerMark Brown <broonie@kernel.org>2015-11-16 05:09:29 -0500
commit2daf71ad8da6cb57f919c9c876ee7e42530371df (patch)
treecbe8dd546eb929a8fa781e5a8a16ba7dc056fb08 /sound/soc/sh
parent69e32a58bde67490f57b6172da198b50c7aa6ab1 (diff)
ASoC: rsnd: avoid pointless loop in rsnd_mod_interrupt()
Current Renesas sound driver doesn't have 1:1 relationship between stream <-> mod because it is supporting MIX. Because of this reason rsnd_mod_interrupt() is searching correspond mod by for loop. But this loop is not needed, because each mod has own type. This patch avoid pointless loop by using mod->type. This patch is good for SSI-parent support, because stream might have 2 SSI as SSI-parent/child. SSI interrupt handler will be called twice if stream has SSI-parent without this patch. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sh')
-rw-r--r--sound/soc/sh/rcar/core.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c
index 5f20d6776281..8af2d22d0cd3 100644
--- a/sound/soc/sh/rcar/core.c
+++ b/sound/soc/sh/rcar/core.c
@@ -192,19 +192,16 @@ void rsnd_mod_interrupt(struct rsnd_mod *mod,
192 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); 192 struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
193 struct rsnd_dai_stream *io; 193 struct rsnd_dai_stream *io;
194 struct rsnd_dai *rdai; 194 struct rsnd_dai *rdai;
195 int i, j; 195 int i;
196
197 for_each_rsnd_dai(rdai, priv, j) {
198 196
199 for (i = 0; i < RSND_MOD_MAX; i++) { 197 for_each_rsnd_dai(rdai, priv, i) {
200 io = &rdai->playback; 198 io = &rdai->playback;
201 if (mod == io->mod[i]) 199 if (mod == io->mod[mod->type])
202 callback(mod, io); 200 callback(mod, io);
203 201
204 io = &rdai->capture; 202 io = &rdai->capture;
205 if (mod == io->mod[i]) 203 if (mod == io->mod[mod->type])
206 callback(mod, io); 204 callback(mod, io);
207 }
208 } 205 }
209} 206}
210 207