Commit 2daf71ad authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

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: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 69e32a58
...@@ -192,20 +192,17 @@ void rsnd_mod_interrupt(struct rsnd_mod *mod, ...@@ -192,20 +192,17 @@ void rsnd_mod_interrupt(struct rsnd_mod *mod,
struct rsnd_priv *priv = rsnd_mod_to_priv(mod); struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
struct rsnd_dai_stream *io; struct rsnd_dai_stream *io;
struct rsnd_dai *rdai; struct rsnd_dai *rdai;
int i, j; int i;
for_each_rsnd_dai(rdai, priv, j) {
for (i = 0; i < RSND_MOD_MAX; i++) { for_each_rsnd_dai(rdai, priv, i) {
io = &rdai->playback; io = &rdai->playback;
if (mod == io->mod[i]) if (mod == io->mod[mod->type])
callback(mod, io); callback(mod, io);
io = &rdai->capture; io = &rdai->capture;
if (mod == io->mod[i]) if (mod == io->mod[mod->type])
callback(mod, io); callback(mod, io);
} }
}
} }
int rsnd_io_is_working(struct rsnd_dai_stream *io) int rsnd_io_is_working(struct rsnd_dai_stream *io)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment