struct rsnd_mod *rsnd_ssi_mod_get_frm_dai(struct rsnd_priv *priv,
                                          int dai_id, int is_play);
 int rsnd_ssi_is_pin_sharing(struct rsnd_mod *mod);
+int rsnd_ssi_is_play(struct rsnd_mod *mod);
 
 #endif
 
                if (rsnd_ssi_dai_id(ssi) != dai_id)
                        continue;
 
-               has_play = !!(rsnd_ssi_mode_flags(ssi) & RSND_SSI_PLAY);
+               has_play = rsnd_ssi_is_play(&ssi->mod);
 
                if (is_play == has_play)
                        return &ssi->mod;
        return !!(rsnd_ssi_mode_flags(ssi) & RSND_SSI_CLK_PIN_SHARE);
 }
 
+int rsnd_ssi_is_play(struct rsnd_mod *mod)
+{
+       struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
+
+       return !!(rsnd_ssi_mode_flags(ssi) & RSND_SSI_PLAY);
+}
+
 static void rsnd_ssi_parent_clk_setup(struct rsnd_priv *priv, struct rsnd_ssi *ssi)
 {
        if (!rsnd_ssi_is_pin_sharing(&ssi->mod))
                if (pinfo->dma_id > 0) {
                        ret = rsnd_dma_init(
                                priv, rsnd_mod_to_dma(&ssi->mod),
-                               (rsnd_ssi_mode_flags(ssi) & RSND_SSI_PLAY),
+                               rsnd_ssi_is_play(&ssi->mod),
                                pinfo->dma_id,
                                rsnd_ssi_dma_inquiry,
                                rsnd_ssi_dma_complete);