#define rsnd_ssi_is_parent(ssi, io) ((ssi) == rsnd_io_to_mod_ssip(io))
 #define rsnd_ssi_is_multi_slave(mod, io) \
        (rsnd_ssi_multi_slaves(io) & (1 << rsnd_mod_id(mod)))
+#define rsnd_ssi_is_run_mods(mod, io) \
+       (rsnd_ssi_run_mods(io) & (1 << rsnd_mod_id(mod)))
 
 int rsnd_ssi_use_busif(struct rsnd_dai_stream *io)
 {
        return mask;
 }
 
+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);
+
+       return rsnd_ssi_multi_slaves_runtime(io) |
+               1 << rsnd_mod_id(ssi_mod) |
+               1 << rsnd_mod_id(ssi_parent_mod);
+}
+
 u32 rsnd_ssi_multi_slaves_runtime(struct rsnd_dai_stream *io)
 {
        struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
        struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
        int ret;
 
+       if (!rsnd_ssi_is_run_mods(mod, io))
+               return 0;
+
        ssi->usrcnt++;
 
        rsnd_mod_power_on(mod);
        struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
        struct device *dev = rsnd_priv_to_dev(priv);
 
+       if (!rsnd_ssi_is_run_mods(mod, io))
+               return 0;
+
        if (!ssi->usrcnt) {
                dev_err(dev, "%s[%d] usrcnt error\n",
                        rsnd_mod_name(mod), rsnd_mod_id(mod));
                          struct rsnd_dai_stream *io,
                          struct rsnd_priv *priv)
 {
+       if (!rsnd_ssi_is_run_mods(mod, io))
+               return 0;
+
        /*
         * EN will be set via SSIU :: SSI_CONTROL
         * if Multi channel mode
        struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
        u32 cr;
 
+       if (!rsnd_ssi_is_run_mods(mod, io))
+               return 0;
+
        /*
         * don't stop if not last user
         * see also
        if (rsnd_ssi_is_parent(mod, io))
                return 0;
 
+       if (!rsnd_ssi_is_run_mods(mod, io))
+               return 0;
+
        if (enable)
                val = rsnd_ssi_is_dma_mode(mod) ? 0x0e000000 : 0x0f000000;