ASoC: rsnd: rsnd_ssi_run_mods() needs to care ssi_parent_mod
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 1 Nov 2017 07:16:58 +0000 (07:16 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 1 Nov 2017 09:53:01 +0000 (09:53 +0000)
SSI parent mod might be NULL. ssi_parent_mod() needs to care
about it. Otherwise, it uses negative shift.
This patch fixes it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/ssi.c

index 58e3420a1f05f193a17b784ec793b191ec0a0338..43c31d153ea6c343b6067983e62c3cc1f0f4d22e 100644 (file)
@@ -195,10 +195,15 @@ static u32 rsnd_ssi_run_mods(struct rsnd_dai_stream *io)
 {
        struct rsnd_mod *ssi_mod = rsnd_io_to_mod_ssi(io);
        struct rsnd_mod *ssi_parent_mod = rsnd_io_to_mod_ssip(io);
+       u32 mods;
 
-       return rsnd_ssi_multi_slaves_runtime(io) |
-               1 << rsnd_mod_id(ssi_mod) |
-               1 << rsnd_mod_id(ssi_parent_mod);
+       mods = rsnd_ssi_multi_slaves_runtime(io) |
+               1 << rsnd_mod_id(ssi_mod);
+
+       if (ssi_parent_mod)
+               mods |= 1 << rsnd_mod_id(ssi_parent_mod);
+
+       return mods;
 }
 
 u32 rsnd_ssi_multi_slaves_runtime(struct rsnd_dai_stream *io)