return mask;
 }
 
-static int rsnd_ssi_master_clk_start(struct rsnd_ssi *ssi,
+static int rsnd_ssi_master_clk_start(struct rsnd_mod *mod,
                                     struct rsnd_dai_stream *io)
 {
        struct rsnd_priv *priv = rsnd_io_to_priv(io);
        struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
        struct device *dev = rsnd_priv_to_dev(priv);
        struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
-       struct rsnd_mod *mod = rsnd_mod_get(ssi);
+       struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
        struct rsnd_mod *ssi_parent_mod = rsnd_io_to_mod_ssip(io);
        int slots = rsnd_get_slot_width(io);
        int j, ret;
        return -EIO;
 }
 
-static void rsnd_ssi_master_clk_stop(struct rsnd_ssi *ssi,
+static void rsnd_ssi_master_clk_stop(struct rsnd_mod *mod,
                                     struct rsnd_dai_stream *io)
 {
        struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
-       struct rsnd_mod *mod = rsnd_mod_get(ssi);
+       struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
        struct rsnd_mod *ssi_parent_mod = rsnd_io_to_mod_ssip(io);
 
        if (!rsnd_rdai_is_clk_master(rdai))
        rsnd_adg_ssi_clk_stop(mod);
 }
 
-static int rsnd_ssi_config_init(struct rsnd_ssi *ssi,
+static int rsnd_ssi_config_init(struct rsnd_mod *mod,
                                struct rsnd_dai_stream *io)
 {
        struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
        struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
+       struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
        u32 cr_own;
        u32 cr_mode;
        u32 wsr;
                return -EINVAL;
        }
 
-       if (rsnd_ssi_is_dma_mode(rsnd_mod_get(ssi))) {
+       if (rsnd_ssi_is_dma_mode(mod)) {
                cr_mode = UIEN | OIEN | /* over/under run */
                          DMEN;         /* DMA : enable DMA */
        } else {
 
        rsnd_mod_power_on(mod);
 
-       ret = rsnd_ssi_master_clk_start(ssi, io);
+       ret = rsnd_ssi_master_clk_start(mod, io);
        if (ret < 0)
                return ret;
 
        if (rsnd_ssi_is_parent(mod, io))
                return 0;
 
-       ret = rsnd_ssi_config_init(ssi, io);
+       ret = rsnd_ssi_config_init(mod, io);
        if (ret < 0)
                return ret;
 
        if (!rsnd_ssi_is_parent(mod, io))
                ssi->cr_own     = 0;
 
-       rsnd_ssi_master_clk_stop(ssi, io);
+       rsnd_ssi_master_clk_stop(mod, io);
 
        rsnd_mod_power_off(mod);