Lines Matching refs:io

129 struct dma_chan *rsnd_mod_dma_req(struct rsnd_dai_stream *io,  in rsnd_mod_dma_req()  argument
135 return mod->ops->dma_req(io, mod); in rsnd_mod_dma_req()
138 u32 *rsnd_mod_get_status(struct rsnd_dai_stream *io, in rsnd_mod_get_status() argument
149 u32* (*get_status)(struct rsnd_dai_stream *io, in rsnd_mod_init() argument
178 struct rsnd_dai_stream *io)) in rsnd_mod_interrupt() argument
181 struct rsnd_dai_stream *io; in rsnd_mod_interrupt() local
186 io = &rdai->playback; in rsnd_mod_interrupt()
187 if (mod == io->mod[mod->type]) in rsnd_mod_interrupt()
188 callback(mod, io); in rsnd_mod_interrupt()
190 io = &rdai->capture; in rsnd_mod_interrupt()
191 if (mod == io->mod[mod->type]) in rsnd_mod_interrupt()
192 callback(mod, io); in rsnd_mod_interrupt()
196 int rsnd_io_is_working(struct rsnd_dai_stream *io) in rsnd_io_is_working() argument
199 if (io->substream) in rsnd_io_is_working()
200 return snd_pcm_running(io->substream); in rsnd_io_is_working()
205 int rsnd_runtime_channel_original_with_params(struct rsnd_dai_stream *io, in rsnd_runtime_channel_original_with_params() argument
208 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); in rsnd_runtime_channel_original_with_params()
222 int rsnd_runtime_channel_after_ctu_with_params(struct rsnd_dai_stream *io, in rsnd_runtime_channel_after_ctu_with_params() argument
225 int chan = rsnd_runtime_channel_original_with_params(io, params); in rsnd_runtime_channel_after_ctu_with_params()
226 struct rsnd_mod *ctu_mod = rsnd_io_to_mod_ctu(io); in rsnd_runtime_channel_after_ctu_with_params()
238 int rsnd_runtime_channel_for_ssi_with_params(struct rsnd_dai_stream *io, in rsnd_runtime_channel_for_ssi_with_params() argument
241 struct rsnd_dai *rdai = rsnd_io_to_rdai(io); in rsnd_runtime_channel_for_ssi_with_params()
242 int chan = rsnd_io_is_play(io) ? in rsnd_runtime_channel_for_ssi_with_params()
243 rsnd_runtime_channel_after_ctu_with_params(io, params) : in rsnd_runtime_channel_for_ssi_with_params()
244 rsnd_runtime_channel_original_with_params(io, params); in rsnd_runtime_channel_for_ssi_with_params()
247 if (rsnd_runtime_is_ssi_multi(io)) in rsnd_runtime_channel_for_ssi_with_params()
257 int rsnd_runtime_is_ssi_multi(struct rsnd_dai_stream *io) in rsnd_runtime_is_ssi_multi() argument
259 struct rsnd_dai *rdai = rsnd_io_to_rdai(io); in rsnd_runtime_is_ssi_multi()
261 int chan = rsnd_io_is_play(io) ? in rsnd_runtime_is_ssi_multi()
262 rsnd_runtime_channel_after_ctu(io) : in rsnd_runtime_is_ssi_multi()
263 rsnd_runtime_channel_original(io); in rsnd_runtime_is_ssi_multi()
268 int rsnd_runtime_is_ssi_tdm(struct rsnd_dai_stream *io) in rsnd_runtime_is_ssi_tdm() argument
270 return rsnd_runtime_channel_for_ssi(io) >= 6; in rsnd_runtime_is_ssi_tdm()
276 u32 rsnd_get_adinr_bit(struct rsnd_mod *mod, struct rsnd_dai_stream *io) in rsnd_get_adinr_bit() argument
279 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); in rsnd_get_adinr_bit()
297 u32 rsnd_get_dalign(struct rsnd_mod *mod, struct rsnd_dai_stream *io) in rsnd_get_dalign() argument
299 struct rsnd_mod *ssiu = rsnd_io_to_mod_ssiu(io); in rsnd_get_dalign()
301 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); in rsnd_get_dalign()
324 if (rsnd_io_is_play(io)) { in rsnd_get_dalign()
325 struct rsnd_mod *src = rsnd_io_to_mod_src(io); in rsnd_get_dalign()
329 struct rsnd_mod *cmd = rsnd_io_to_mod_cmd(io); in rsnd_get_dalign()
343 u32 rsnd_get_busif_shift(struct rsnd_dai_stream *io, struct rsnd_mod *mod) in rsnd_get_busif_shift() argument
355 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); in rsnd_get_busif_shift()
358 rsnd_io_is_play(io) ? in rsnd_get_busif_shift()
374 tmod = rsnd_io_to_mod(io, mods[i]); in rsnd_get_busif_shift()
382 if (rsnd_io_is_play(io)) in rsnd_get_busif_shift()
394 struct rsnd_dai_stream *io, in rsnd_mod_next() argument
404 mod = rsnd_io_to_mod(io, type); in rsnd_mod_next()
462 #define rsnd_dai_call(fn, io, param...) \ argument
464 struct device *dev = rsnd_priv_to_dev(rsnd_io_to_priv(io)); \
466 int is_play = rsnd_io_is_play(io); \
469 for_each_rsnd_mod_arrays(i, mod, io, types, RSND_MOD_MAX) { \
471 u32 *status = mod->get_status(io, mod, types[i]); \
480 tmp = (mod)->ops->fn(mod, io, param); \
491 struct rsnd_dai_stream *io, in rsnd_dai_connect() argument
500 if (io->mod[type] == mod) in rsnd_dai_connect()
503 if (io->mod[type]) in rsnd_dai_connect()
509 io->mod[type] = mod; in rsnd_dai_connect()
513 rsnd_io_is_play(io) ? "Playback" : "Capture"); in rsnd_dai_connect()
519 struct rsnd_dai_stream *io, in rsnd_dai_disconnect() argument
522 io->mod[type] = NULL; in rsnd_dai_disconnect()
571 void rsnd_dai_period_elapsed(struct rsnd_dai_stream *io) in rsnd_dai_period_elapsed() argument
573 struct snd_pcm_substream *substream = io->substream; in rsnd_dai_period_elapsed()
585 static void rsnd_dai_stream_init(struct rsnd_dai_stream *io, in rsnd_dai_stream_init() argument
588 io->substream = substream; in rsnd_dai_stream_init()
591 static void rsnd_dai_stream_quit(struct rsnd_dai_stream *io) in rsnd_dai_stream_quit() argument
593 io->substream = NULL; in rsnd_dai_stream_quit()
619 struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); in rsnd_soc_dai_trigger() local
628 ret = rsnd_dai_call(init, io, priv); in rsnd_soc_dai_trigger()
632 ret = rsnd_dai_call(start, io, priv); in rsnd_soc_dai_trigger()
636 ret = rsnd_dai_call(irq, io, priv, 1); in rsnd_soc_dai_trigger()
643 ret = rsnd_dai_call(irq, io, priv, 0); in rsnd_soc_dai_trigger()
645 ret |= rsnd_dai_call(stop, io, priv); in rsnd_soc_dai_trigger()
647 ret |= rsnd_dai_call(quit, io, priv); in rsnd_soc_dai_trigger()
803 struct rsnd_dai_stream *io = is_play ? &rdai->playback : &rdai->capture; in __rsnd_soc_hw_rule_rate() local
812 ic.max = rsnd_runtime_channel_for_ssi_with_params(io, params); in __rsnd_soc_hw_rule_rate()
841 struct rsnd_dai_stream *io = is_play ? &rdai->playback : &rdai->capture; in __rsnd_soc_hw_rule_channels() local
850 ic.max = rsnd_runtime_channel_for_ssi_with_params(io, params); in __rsnd_soc_hw_rule_channels()
886 struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); in rsnd_soc_dai_startup() local
893 rsnd_dai_stream_init(io, substream); in rsnd_soc_dai_startup()
939 ret = rsnd_dai_call(nolock_start, io, priv); in rsnd_soc_dai_startup()
941 rsnd_dai_call(nolock_stop, io, priv); in rsnd_soc_dai_startup()
951 struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); in rsnd_soc_dai_shutdown() local
956 rsnd_dai_call(nolock_stop, io, priv); in rsnd_soc_dai_shutdown()
958 rsnd_dai_stream_quit(io); in rsnd_soc_dai_shutdown()
966 struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); in rsnd_soc_dai_prepare() local
968 return rsnd_dai_call(prepare, io, priv); in rsnd_soc_dai_prepare()
1170 struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); in rsnd_hw_params() local
1173 ret = rsnd_dai_call(hw_params, io, substream, hw_params); in rsnd_hw_params()
1185 struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); in rsnd_pointer() local
1188 rsnd_dai_call(pointer, io, &pointer); in rsnd_pointer()
1250 if (!cfg->accept(cfg->io)) in rsnd_kctrl_put()
1264 cfg->update(cfg->io, cfg->mod); in rsnd_kctrl_put()
1269 int rsnd_kctrl_accept_anytime(struct rsnd_dai_stream *io) in rsnd_kctrl_accept_anytime() argument
1274 int rsnd_kctrl_accept_runtime(struct rsnd_dai_stream *io) in rsnd_kctrl_accept_runtime() argument
1276 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); in rsnd_kctrl_accept_runtime()
1323 struct rsnd_dai_stream *io, in rsnd_kctrl_new() argument
1326 int (*accept)(struct rsnd_dai_stream *io), in rsnd_kctrl_new() argument
1327 void (*update)(struct rsnd_dai_stream *io, in rsnd_kctrl_new() argument
1364 cfg->io = io; in rsnd_kctrl_new()
1378 struct rsnd_dai_stream *io, in rsnd_preallocate_pages() argument
1381 struct rsnd_priv *priv = rsnd_io_to_priv(io); in rsnd_preallocate_pages()
1391 if (io->dmac_dev) in rsnd_preallocate_pages()
1392 dev = io->dmac_dev; in rsnd_preallocate_pages()
1442 struct rsnd_dai_stream *io) in rsnd_rdai_continuance_probe() argument
1446 ret = rsnd_dai_call(probe, io, priv); in rsnd_rdai_continuance_probe()
1448 struct rsnd_mod *ssi_mod = rsnd_io_to_mod_ssi(io); in rsnd_rdai_continuance_probe()
1463 rsnd_dai_call(remove, io, priv); in rsnd_rdai_continuance_probe()
1469 for_each_rsnd_mod(i, mod, io) in rsnd_rdai_continuance_probe()
1470 rsnd_dai_disconnect(mod, io, i); in rsnd_rdai_continuance_probe()
1471 rsnd_dai_connect(ssi_mod, io, RSND_MOD_SSI); in rsnd_rdai_continuance_probe()
1476 rsnd_dai_call(fallback, io, priv); in rsnd_rdai_continuance_probe()
1482 ret = rsnd_dai_call(probe, io, priv); in rsnd_rdai_continuance_probe()