Lines Matching refs:mod
132 char *rsnd_mod_name(struct rsnd_mod *mod) in rsnd_mod_name() argument
134 if (!mod || !mod->ops) in rsnd_mod_name()
137 return mod->ops->name; in rsnd_mod_name()
140 struct dma_chan *rsnd_mod_dma_req(struct rsnd_mod *mod) in rsnd_mod_dma_req() argument
142 if (!mod || !mod->ops || !mod->ops->dma_req) in rsnd_mod_dma_req()
145 return mod->ops->dma_req(mod); in rsnd_mod_dma_req()
148 int rsnd_mod_init(struct rsnd_mod *mod, in rsnd_mod_init() argument
159 mod->id = id; in rsnd_mod_init()
160 mod->ops = ops; in rsnd_mod_init()
161 mod->type = type; in rsnd_mod_init()
162 mod->clk = clk; in rsnd_mod_init()
167 void rsnd_mod_quit(struct rsnd_mod *mod) in rsnd_mod_quit() argument
169 if (mod->clk) in rsnd_mod_quit()
170 clk_unprepare(mod->clk); in rsnd_mod_quit()
176 u32 rsnd_get_adinr(struct rsnd_mod *mod) in rsnd_get_adinr() argument
178 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_get_adinr()
179 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_get_adinr()
202 #define __rsnd_mod_call(mod, func, param...) \ argument
204 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); \
209 if ((mod->status & mask) == call) { \
211 rsnd_mod_name(mod), rsnd_mod_id(mod), #func); \
212 ret = (mod)->ops->func(mod, param); \
213 mod->status = (mod->status & ~mask) | (~call & mask); \
218 #define rsnd_mod_call(mod, func, param...) \ argument
219 (!(mod) ? -ENODEV : \
220 !((mod)->ops->func) ? 0 : \
221 __rsnd_mod_call(mod, func, param))
225 struct rsnd_mod *mod; \
228 mod = (io)->mod[i]; \
229 if (!mod) \
231 ret = rsnd_mod_call(mod, fn, param); \
238 static int rsnd_dai_connect(struct rsnd_mod *mod, in rsnd_dai_connect() argument
241 if (!mod) in rsnd_dai_connect()
244 if (io->mod[mod->type]) { in rsnd_dai_connect()
245 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_dai_connect()
249 rsnd_mod_name(mod), in rsnd_dai_connect()
250 rsnd_mod_id(mod)); in rsnd_dai_connect()
254 io->mod[mod->type] = mod; in rsnd_dai_connect()
255 mod->io = io; in rsnd_dai_connect()
260 static void rsnd_dai_disconnect(struct rsnd_mod *mod, in rsnd_dai_disconnect() argument
263 mod->io = NULL; in rsnd_dai_disconnect()
264 io->mod[mod->type] = NULL; in rsnd_dai_disconnect()
468 struct rsnd_mod *mod; \
475 mod = rsnd_##type##_mod_get(priv, id); \
476 ret = rsnd_dai_connect(mod, io); \
484 struct rsnd_mod *mod; \
490 mod = rsnd_##type##_mod_get(priv, id); \
491 rsnd_dai_disconnect(mod, io); \
810 struct rsnd_mod *mod = snd_kcontrol_chip(kctrl); in rsnd_kctrl_put() local
825 cfg->update(mod); in rsnd_kctrl_put()
830 static int __rsnd_kctrl_new(struct rsnd_mod *mod, in __rsnd_kctrl_new() argument
834 void (*update)(struct rsnd_mod *mod)) in __rsnd_kctrl_new() argument
848 kctrl = snd_ctl_new1(&knew, mod); in __rsnd_kctrl_new()
870 int rsnd_kctrl_new_m(struct rsnd_mod *mod, in rsnd_kctrl_new_m() argument
873 void (*update)(struct rsnd_mod *mod), in rsnd_kctrl_new_m() argument
880 return __rsnd_kctrl_new(mod, rtd, name, &_cfg->cfg, update); in rsnd_kctrl_new_m()
883 int rsnd_kctrl_new_s(struct rsnd_mod *mod, in rsnd_kctrl_new_s() argument
886 void (*update)(struct rsnd_mod *mod), in rsnd_kctrl_new_s() argument
893 return __rsnd_kctrl_new(mod, rtd, name, &_cfg->cfg, update); in rsnd_kctrl_new_s()
896 int rsnd_kctrl_new_e(struct rsnd_mod *mod, in rsnd_kctrl_new_e() argument
900 void (*update)(struct rsnd_mod *mod), in rsnd_kctrl_new_e() argument
908 return __rsnd_kctrl_new(mod, rtd, name, &_cfg->cfg, update); in rsnd_kctrl_new_e()