Lines Matching refs:mod

24 	struct rsnd_mod mod;  member
38 container_of((_mod), struct rsnd_src, mod)
120 static struct dma_chan *rsnd_src_dma_req(struct rsnd_mod *mod) in rsnd_src_dma_req() argument
122 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_src_dma_req()
123 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_dma_req()
127 mod, in rsnd_src_dma_req()
240 struct rsnd_mod *mod = &src->mod; in rsnd_src_convert_rate() local
241 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_convert_rate()
286 static int rsnd_src_set_convert_rate(struct rsnd_mod *mod) in rsnd_src_set_convert_rate() argument
288 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_set_convert_rate()
290 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_rate()
298 rsnd_mod_write(mod, SRC_SWRSR, 0); in rsnd_src_set_convert_rate()
299 rsnd_mod_write(mod, SRC_SWRSR, 1); in rsnd_src_set_convert_rate()
302 rsnd_mod_write(mod, SRC_ADINR, rsnd_get_adinr(mod)); in rsnd_src_set_convert_rate()
306 rsnd_mod_write(mod, SRC_IFSCR, 1); in rsnd_src_set_convert_rate()
309 rsnd_mod_write(mod, SRC_IFSVR, fsrate); in rsnd_src_set_convert_rate()
313 rsnd_mod_write(mod, SRC_BUSIF_MODE, 1); in rsnd_src_set_convert_rate()
318 static int rsnd_src_hw_params(struct rsnd_mod *mod, in rsnd_src_hw_params() argument
322 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_hw_params()
353 static int rsnd_src_init(struct rsnd_mod *mod, in rsnd_src_init() argument
356 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_init()
358 rsnd_mod_hw_start(mod); in rsnd_src_init()
369 rsnd_mod_write(mod, SRC_SRCIR, 1); in rsnd_src_init()
374 static int rsnd_src_quit(struct rsnd_mod *mod, in rsnd_src_quit() argument
377 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_quit()
380 rsnd_mod_hw_stop(mod); in rsnd_src_quit()
384 rsnd_mod_name(mod), rsnd_mod_id(mod), src->err); in rsnd_src_quit()
394 static int rsnd_src_start(struct rsnd_mod *mod) in rsnd_src_start() argument
400 rsnd_mod_write(mod, SRC_SRCIR, 0); in rsnd_src_start()
405 static int rsnd_src_stop(struct rsnd_mod *mod) in rsnd_src_stop() argument
414 static int rsnd_src_set_route_gen1(struct rsnd_mod *mod) in rsnd_src_set_route_gen1() argument
416 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_set_route_gen1()
435 id = rsnd_mod_id(mod); in rsnd_src_set_route_gen1()
446 rsnd_mod_bset(mod, SRC_ROUTE_SEL, mask, val); in rsnd_src_set_route_gen1()
451 static int rsnd_src_set_convert_timing_gen1(struct rsnd_mod *mod) in rsnd_src_set_convert_timing_gen1() argument
453 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_set_convert_timing_gen1()
454 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_src_set_convert_timing_gen1()
455 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_timing_gen1()
461 int id = rsnd_mod_id(mod); in rsnd_src_set_convert_timing_gen1()
480 ret = rsnd_adg_set_convert_clk_gen1(priv, mod, in rsnd_src_set_convert_timing_gen1()
496 rsnd_mod_bset(mod, SRC_TMG_SEL0, mask, val); in rsnd_src_set_convert_timing_gen1()
499 rsnd_mod_bset(mod, SRC_TMG_SEL1, mask, val); in rsnd_src_set_convert_timing_gen1()
502 rsnd_mod_bset(mod, SRC_TMG_SEL2, mask, val); in rsnd_src_set_convert_timing_gen1()
509 static int rsnd_src_set_convert_rate_gen1(struct rsnd_mod *mod) in rsnd_src_set_convert_rate_gen1() argument
511 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_rate_gen1()
514 ret = rsnd_src_set_convert_rate(mod); in rsnd_src_set_convert_rate_gen1()
519 rsnd_mod_write(mod, SRC_SRCCR, 0x00010110); in rsnd_src_set_convert_rate_gen1()
522 rsnd_mod_write(mod, SRC_MNFSR, in rsnd_src_set_convert_rate_gen1()
523 rsnd_mod_read(mod, SRC_IFSVR) / 100 * 98); in rsnd_src_set_convert_rate_gen1()
527 rsnd_mod_write(mod, SRC_ROUTE_MODE0, 1); in rsnd_src_set_convert_rate_gen1()
534 static int rsnd_src_init_gen1(struct rsnd_mod *mod, in rsnd_src_init_gen1() argument
539 ret = rsnd_src_init(mod, priv); in rsnd_src_init_gen1()
543 ret = rsnd_src_set_route_gen1(mod); in rsnd_src_init_gen1()
547 ret = rsnd_src_set_convert_rate_gen1(mod); in rsnd_src_init_gen1()
551 ret = rsnd_src_set_convert_timing_gen1(mod); in rsnd_src_init_gen1()
558 static int rsnd_src_start_gen1(struct rsnd_mod *mod, in rsnd_src_start_gen1() argument
561 int id = rsnd_mod_id(mod); in rsnd_src_start_gen1()
563 rsnd_mod_bset(mod, SRC_ROUTE_CTRL, (1 << id), (1 << id)); in rsnd_src_start_gen1()
565 return rsnd_src_start(mod); in rsnd_src_start_gen1()
568 static int rsnd_src_stop_gen1(struct rsnd_mod *mod, in rsnd_src_stop_gen1() argument
571 int id = rsnd_mod_id(mod); in rsnd_src_stop_gen1()
573 rsnd_mod_bset(mod, SRC_ROUTE_CTRL, (1 << id), 0); in rsnd_src_stop_gen1()
575 return rsnd_src_stop(mod); in rsnd_src_stop_gen1()
591 #define rsnd_src_irq_enable_gen2(mod) rsnd_src_irq_ctrol_gen2(mod, 1) argument
592 #define rsnd_src_irq_disable_gen2(mod) rsnd_src_irq_ctrol_gen2(mod, 0) argument
593 static void rsnd_src_irq_ctrol_gen2(struct rsnd_mod *mod, int enable) in rsnd_src_irq_ctrol_gen2() argument
595 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_irq_ctrol_gen2()
598 int id = rsnd_mod_id(mod); in rsnd_src_irq_ctrol_gen2()
614 rsnd_mod_write(mod, SRC_INT_ENABLE0, int_val); in rsnd_src_irq_ctrol_gen2()
615 rsnd_mod_bset(mod, SCU_SYS_INT_EN0, sys_int_mask, sys_int_val); in rsnd_src_irq_ctrol_gen2()
616 rsnd_mod_bset(mod, SCU_SYS_INT_EN1, sys_int_mask, sys_int_val); in rsnd_src_irq_ctrol_gen2()
619 static void rsnd_src_error_clear_gen2(struct rsnd_mod *mod) in rsnd_src_error_clear_gen2() argument
621 u32 val = OUF_SRC(rsnd_mod_id(mod)); in rsnd_src_error_clear_gen2()
623 rsnd_mod_bset(mod, SCU_SYS_STATUS0, val, val); in rsnd_src_error_clear_gen2()
624 rsnd_mod_bset(mod, SCU_SYS_STATUS1, val, val); in rsnd_src_error_clear_gen2()
627 static bool rsnd_src_error_record_gen2(struct rsnd_mod *mod) in rsnd_src_error_record_gen2() argument
629 u32 val = OUF_SRC(rsnd_mod_id(mod)); in rsnd_src_error_record_gen2()
632 if ((rsnd_mod_read(mod, SCU_SYS_STATUS0) & val) || in rsnd_src_error_record_gen2()
633 (rsnd_mod_read(mod, SCU_SYS_STATUS1) & val)) { in rsnd_src_error_record_gen2()
634 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_error_record_gen2()
641 rsnd_src_error_clear_gen2(mod); in rsnd_src_error_record_gen2()
646 static int _rsnd_src_start_gen2(struct rsnd_mod *mod) in _rsnd_src_start_gen2() argument
648 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in _rsnd_src_start_gen2()
651 rsnd_mod_write(mod, SRC_CTRL, val); in _rsnd_src_start_gen2()
653 rsnd_src_error_clear_gen2(mod); in _rsnd_src_start_gen2()
655 rsnd_src_start(mod); in _rsnd_src_start_gen2()
657 rsnd_src_irq_enable_gen2(mod); in _rsnd_src_start_gen2()
662 static int _rsnd_src_stop_gen2(struct rsnd_mod *mod) in _rsnd_src_stop_gen2() argument
664 rsnd_src_irq_disable_gen2(mod); in _rsnd_src_stop_gen2()
666 rsnd_mod_write(mod, SRC_CTRL, 0); in _rsnd_src_stop_gen2()
668 rsnd_src_error_record_gen2(mod); in _rsnd_src_stop_gen2()
670 return rsnd_src_stop(mod); in _rsnd_src_stop_gen2()
675 struct rsnd_mod *mod = data; in rsnd_src_interrupt_gen2() local
676 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_interrupt_gen2()
681 if (rsnd_src_error_record_gen2(mod)) { in rsnd_src_interrupt_gen2()
682 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_src_interrupt_gen2()
683 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_interrupt_gen2()
687 rsnd_mod_name(mod), rsnd_mod_id(mod)); in rsnd_src_interrupt_gen2()
689 _rsnd_src_stop_gen2(mod); in rsnd_src_interrupt_gen2()
691 _rsnd_src_start_gen2(mod); in rsnd_src_interrupt_gen2()
699 static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod) in rsnd_src_set_convert_rate_gen2() argument
701 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_src_set_convert_rate_gen2()
703 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_set_convert_rate_gen2()
705 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_rate_gen2()
724 ret = rsnd_src_set_convert_rate(mod); in rsnd_src_set_convert_rate_gen2()
740 rsnd_mod_write(mod, SRC_SRCCR, cr); in rsnd_src_set_convert_rate_gen2()
741 rsnd_mod_write(mod, SRC_ROUTE_MODE0, route); in rsnd_src_set_convert_rate_gen2()
743 switch (rsnd_mod_id(mod)) { in rsnd_src_set_convert_rate_gen2()
748 rsnd_mod_write(mod, SRC_BSDSR, 0x02400000); in rsnd_src_set_convert_rate_gen2()
751 rsnd_mod_write(mod, SRC_BSDSR, 0x01800000); in rsnd_src_set_convert_rate_gen2()
755 rsnd_mod_write(mod, SRC_BSISR, 0x00100060); in rsnd_src_set_convert_rate_gen2()
760 static int rsnd_src_set_convert_timing_gen2(struct rsnd_mod *mod) in rsnd_src_set_convert_timing_gen2() argument
762 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_set_convert_timing_gen2()
764 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_timing_gen2()
769 ret = rsnd_adg_set_convert_clk_gen2(mod, io, in rsnd_src_set_convert_timing_gen2()
773 ret = rsnd_adg_set_convert_timing_gen2(mod, io); in rsnd_src_set_convert_timing_gen2()
778 static int rsnd_src_probe_gen2(struct rsnd_mod *mod, in rsnd_src_probe_gen2() argument
781 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_probe_gen2()
795 dev_name(dev), mod); in rsnd_src_probe_gen2()
801 rsnd_mod_to_dma(mod), in rsnd_src_probe_gen2()
807 static int rsnd_src_remove_gen2(struct rsnd_mod *mod, in rsnd_src_remove_gen2() argument
810 rsnd_dma_quit(rsnd_mod_to_dma(mod)); in rsnd_src_remove_gen2()
815 static int rsnd_src_init_gen2(struct rsnd_mod *mod, in rsnd_src_init_gen2() argument
820 ret = rsnd_src_init(mod, priv); in rsnd_src_init_gen2()
824 ret = rsnd_src_set_convert_rate_gen2(mod); in rsnd_src_init_gen2()
828 ret = rsnd_src_set_convert_timing_gen2(mod); in rsnd_src_init_gen2()
835 static int rsnd_src_start_gen2(struct rsnd_mod *mod, in rsnd_src_start_gen2() argument
838 rsnd_dma_start(rsnd_mod_to_dma(mod)); in rsnd_src_start_gen2()
840 return _rsnd_src_start_gen2(mod); in rsnd_src_start_gen2()
843 static int rsnd_src_stop_gen2(struct rsnd_mod *mod, in rsnd_src_stop_gen2() argument
848 ret = _rsnd_src_stop_gen2(mod); in rsnd_src_stop_gen2()
850 rsnd_dma_stop(rsnd_mod_to_dma(mod)); in rsnd_src_stop_gen2()
855 static void rsnd_src_reconvert_update(struct rsnd_mod *mod) in rsnd_src_reconvert_update() argument
857 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_reconvert_update()
859 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_reconvert_update()
872 rsnd_mod_write(mod, SRC_IFSVR, fsrate); in rsnd_src_reconvert_update()
875 static int rsnd_src_pcm_new(struct rsnd_mod *mod, in rsnd_src_pcm_new() argument
878 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_src_pcm_new()
879 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); in rsnd_src_pcm_new()
881 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_pcm_new()
910 ret = rsnd_kctrl_new_s(mod, rtd, in rsnd_src_pcm_new()
919 ret = rsnd_kctrl_new_s(mod, rtd, in rsnd_src_pcm_new()
947 return &((struct rsnd_src *)(priv->src) + id)->mod; in rsnd_src_mod_get()
1044 ret = rsnd_mod_init(&src->mod, ops, clk, RSND_MOD_SRC, i); in rsnd_src_probe()
1059 rsnd_mod_quit(&src->mod); in rsnd_src_remove()