/* * SSI mod common functions */ static int rsnd_ssi_init(struct rsnd_mod *mod, struct rsnd_dai_stream *io, struct rsnd_priv *priv) { 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); ret = rsnd_ssi_master_clk_start(mod, io); if (ret < 0) return ret; if (!rsnd_ssi_is_parent(mod, io)) rsnd_ssi_config_init(mod, io); rsnd_ssi_register_setup(mod); /* clear error status */ rsnd_ssi_status_clear(mod); return 0; }
static int rsnd_mix_init(struct rsnd_mod *mod, struct rsnd_dai_stream *io, struct rsnd_priv *priv) { rsnd_mod_power_on(mod); rsnd_mix_activation(mod); rsnd_mix_volume_init(io, mod); rsnd_mix_volume_update(io, mod); return 0; }