Lines Matching refs:io

124 #define rsnd_is_enable_path(io, name) \  argument
125 ((io)->info ? (io)->info->name : NULL)
126 #define rsnd_info_id(priv, io, name) \ argument
127 ((io)->info->name - priv->info->name##_info)
179 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_get_adinr() local
180 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); in rsnd_get_adinr()
223 #define rsnd_dai_call(fn, io, param...) \ argument
228 mod = (io)->mod[i]; \
239 struct rsnd_dai_stream *io) in rsnd_dai_connect() argument
244 if (io->mod[mod->type]) { in rsnd_dai_connect()
254 io->mod[mod->type] = mod; in rsnd_dai_connect()
255 mod->io = io; in rsnd_dai_connect()
261 struct rsnd_dai_stream *io) in rsnd_dai_disconnect() argument
263 mod->io = NULL; in rsnd_dai_disconnect()
264 io->mod[mod->type] = NULL; in rsnd_dai_disconnect()
285 int rsnd_dai_pointer_offset(struct rsnd_dai_stream *io, int additional) in rsnd_dai_pointer_offset() argument
287 struct snd_pcm_substream *substream = io->substream; in rsnd_dai_pointer_offset()
289 int pos = io->byte_pos + additional; in rsnd_dai_pointer_offset()
291 pos %= (runtime->periods * io->byte_per_period); in rsnd_dai_pointer_offset()
296 void rsnd_dai_pointer_update(struct rsnd_dai_stream *io, int byte) in rsnd_dai_pointer_update() argument
298 io->byte_pos += byte; in rsnd_dai_pointer_update()
300 if (io->byte_pos >= io->next_period_byte) { in rsnd_dai_pointer_update()
301 struct snd_pcm_substream *substream = io->substream; in rsnd_dai_pointer_update()
304 io->period_pos++; in rsnd_dai_pointer_update()
305 io->next_period_byte += io->byte_per_period; in rsnd_dai_pointer_update()
307 if (io->period_pos >= runtime->periods) { in rsnd_dai_pointer_update()
308 io->byte_pos = 0; in rsnd_dai_pointer_update()
309 io->period_pos = 0; in rsnd_dai_pointer_update()
310 io->next_period_byte = io->byte_per_period; in rsnd_dai_pointer_update()
317 static int rsnd_dai_stream_init(struct rsnd_dai_stream *io, in rsnd_dai_stream_init() argument
322 io->substream = substream; in rsnd_dai_stream_init()
323 io->byte_pos = 0; in rsnd_dai_stream_init()
324 io->period_pos = 0; in rsnd_dai_stream_init()
325 io->byte_per_period = runtime->period_size * in rsnd_dai_stream_init()
328 io->next_period_byte = io->byte_per_period; in rsnd_dai_stream_init()
356 struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); in rsnd_soc_dai_trigger() local
357 int ssi_id = rsnd_mod_id(rsnd_io_to_mod_ssi(io)); in rsnd_soc_dai_trigger()
365 ret = rsnd_dai_stream_init(io, substream); in rsnd_soc_dai_trigger()
373 ret = rsnd_dai_call(init, io, priv); in rsnd_soc_dai_trigger()
377 ret = rsnd_dai_call(start, io, priv); in rsnd_soc_dai_trigger()
382 ret = rsnd_dai_call(stop, io, priv); in rsnd_soc_dai_trigger()
386 ret = rsnd_dai_call(quit, io, priv); in rsnd_soc_dai_trigger()
466 #define rsnd_path_parse(priv, io, type) \ argument
472 if (rsnd_is_enable_path(io, type)) { \
473 id = rsnd_info_id(priv, io, type); \
476 ret = rsnd_dai_connect(mod, io); \
482 #define rsnd_path_break(priv, io, type) \ argument
487 if (rsnd_is_enable_path(io, type)) { \
488 id = rsnd_info_id(priv, io, type); \
491 rsnd_dai_disconnect(mod, io); \
498 struct rsnd_dai_stream *io) in rsnd_path_init() argument
514 ret = rsnd_path_parse(priv, io, src); in rsnd_path_init()
519 ret = rsnd_path_parse(priv, io, ssi); in rsnd_path_init()
524 ret = rsnd_path_parse(priv, io, dvc); in rsnd_path_init()
733 struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); in rsnd_hw_params() local
736 ret = rsnd_dai_call(hw_params, io, substream, hw_params); in rsnd_hw_params()
749 struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); in rsnd_pointer() local
751 return bytes_to_frames(runtime, io->byte_pos); in rsnd_pointer()
949 struct rsnd_dai_stream *io) in rsnd_rdai_continuance_probe() argument
953 ret = rsnd_dai_call(probe, io, priv); in rsnd_rdai_continuance_probe()
966 rsnd_dai_call(remove, io, priv); in rsnd_rdai_continuance_probe()
971 rsnd_path_break(priv, io, src); in rsnd_rdai_continuance_probe()
972 rsnd_path_break(priv, io, dvc); in rsnd_rdai_continuance_probe()
977 rsnd_dai_call(fallback, io, priv); in rsnd_rdai_continuance_probe()
983 ret = rsnd_dai_call(probe, io, priv); in rsnd_rdai_continuance_probe()