enum rsnd_reg reg, u32 data);
 void rsnd_bset(struct rsnd_priv *priv, struct rsnd_mod *mod, enum rsnd_reg reg,
                    u32 mask, u32 data);
-u32 rsnd_get_adinr(struct rsnd_mod *mod);
+u32 rsnd_get_adinr(struct rsnd_mod *mod, struct rsnd_dai_stream *io);
 
 /*
  *     R-Car DMA
                                   struct rsnd_dai_stream *io,
                                   struct snd_pcm_runtime *runtime);
 int rsnd_src_ssiu_start(struct rsnd_mod *ssi_mod,
+                       struct rsnd_dai_stream *io,
                        int use_busif);
-int rsnd_src_ssiu_stop(struct rsnd_mod *ssi_mod);
+int rsnd_src_ssiu_stop(struct rsnd_mod *ssi_mod,
+                      struct rsnd_dai_stream *io);
 int rsnd_src_ssi_irq_enable(struct rsnd_mod *ssi_mod);
 int rsnd_src_ssi_irq_disable(struct rsnd_mod *ssi_mod);
 
 
 }
 
 int rsnd_src_ssiu_start(struct rsnd_mod *ssi_mod,
+                       struct rsnd_dai_stream *io,
                        int use_busif)
 {
-       struct rsnd_dai_stream *io = rsnd_mod_to_io(ssi_mod);
        struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
        struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
        int ssi_id = rsnd_mod_id(ssi_mod);
                u32 mask = ~0;
 
                rsnd_mod_write(ssi_mod, SSI_BUSIF_ADINR,
-                              rsnd_get_adinr(ssi_mod));
+                              rsnd_get_adinr(ssi_mod, io));
                rsnd_mod_write(ssi_mod, SSI_BUSIF_MODE,  1);
                rsnd_mod_write(ssi_mod, SSI_CTRL, 0x1);
 
        return 0;
 }
 
-int rsnd_src_ssiu_stop(struct rsnd_mod *ssi_mod)
+int rsnd_src_ssiu_stop(struct rsnd_mod *ssi_mod,
+                      struct rsnd_dai_stream *io)
 {
        /*
         * DMA settings for SSIU
        return rate;
 }
 
-static int rsnd_src_set_convert_rate(struct rsnd_mod *mod)
+static int rsnd_src_set_convert_rate(struct rsnd_mod *mod,
+                                    struct rsnd_dai_stream *io)
 {
-       struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
        struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
        struct rsnd_src *src = rsnd_mod_to_src(mod);
        u32 convert_rate = rsnd_src_convert_rate(src);
        rsnd_mod_write(mod, SRC_SWRSR, 1);
 
        /* Set channel number and output bit length */
-       rsnd_mod_write(mod, SRC_ADINR, rsnd_get_adinr(mod));
+       rsnd_mod_write(mod, SRC_ADINR, rsnd_get_adinr(mod, io));
 
        /* Enable the initial value of IFS */
        if (fsrate) {
        return 0;
 }
 
-static int rsnd_src_set_convert_rate_gen1(struct rsnd_mod *mod)
+static int rsnd_src_set_convert_rate_gen1(struct rsnd_mod *mod,
+                                         struct rsnd_dai_stream *io)
 {
        struct rsnd_src *src = rsnd_mod_to_src(mod);
        int ret;
 
-       ret = rsnd_src_set_convert_rate(mod);
+       ret = rsnd_src_set_convert_rate(mod, io);
        if (ret < 0)
                return ret;
 
        if (ret < 0)
                return ret;
 
-       ret = rsnd_src_set_convert_rate_gen1(mod);
+       ret = rsnd_src_set_convert_rate_gen1(mod, io);
        if (ret < 0)
                return ret;
 
        return IRQ_HANDLED;
 }
 
-static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod)
+static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod,
+                                         struct rsnd_dai_stream *io)
 {
        struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
        struct device *dev = rsnd_priv_to_dev(priv);
-       struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
        struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
        struct rsnd_src *src = rsnd_mod_to_src(mod);
        u32 convert_rate = rsnd_src_convert_rate(src);
                return -EINVAL;
        }
 
-       ret = rsnd_src_set_convert_rate(mod);
+       ret = rsnd_src_set_convert_rate(mod, io);
        if (ret < 0)
                return ret;
 
        if (ret < 0)
                return ret;
 
-       ret = rsnd_src_set_convert_rate_gen2(mod);
+       ret = rsnd_src_set_convert_rate_gen2(mod, io);
        if (ret < 0)
                return ret;