Patch "ASoC: rsnd: avoid pointless loop in rsnd_mod_interrupt()" has been added to the 4.4-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
ASoC: rsnd: avoid pointless loop in rsnd_mod_interrupt()
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
asoc-rsnd-avoid-pointless-loop-in-rsnd_mod_interrupt.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
2daf71ad8da6cb57f919c9c876ee7e42530371dfMon Sep 17 00:00:00 2001
From: Kuninori Morimoto <[email protected]>
Date: Mon, 26 Oct 2015 08:41:53 +0000
Subject: ASoC: rsnd: avoid pointless loop in rsnd_mod_interrupt()
From: Kuninori Morimoto <[email protected]>
commit 2daf71ad8da6cb57f919c9c876ee7e42530371df upstream.
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.
--- sound/soc/sh/rcar/core.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-)
sound/soc/sh/rcar/core.c +8 -11
@@ -192,19 +192,16 @@ void rsnd_mod_interrupt(struct rsnd_modstruct rsnd_priv *priv =rsnd_mod_to_priv (mod);struct rsnd_dai_stream *io;struct rsnd_dai *rdai; -int i, j; +int i; -for_each_rsnd_dai (rdai, priv, j) { +for_each_rsnd_dai (rdai, priv, i) { + io = &rdai->playback; +if (mod == io->mod[mod->type]) +callback (mod, io); -for (i =0 ; i <RSND_MOD_MAX ; i++) { - io = &rdai->playback; -if (mod == io->mod[i]) -callback (mod, io); - - io = &rdai->capture; -if (mod == io->mod[i]) -callback (mod, io); - } + io = &rdai->capture; +if (mod == io->mod[mod->type]) +callback (mod, io); } }
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/asoc-rsnd-add-missing-initialization-of-adg-req_rate.patch queue-4.4/asoc-rsnd-avoid-pointless-loop-in-rsnd_mod_interrupt.patch queue-4.4/asoc-rsnd-disable-src.out-only-when-stop-timing.patch queue-4.4/asoc-rsnd-don-t-call-update-callback-if-it-was-null.patch queue-4.4/asoc-rsnd-ssi-24bit-data-needs-right-aligned-settings.patch