Lines Matching refs:mod

24 	struct rsnd_mod mod;  member
39 container_of((_mod), struct rsnd_src, mod)
121 static void rsnd_src_soft_reset(struct rsnd_mod *mod) in rsnd_src_soft_reset() argument
123 rsnd_mod_write(mod, SRC_SWRSR, 0); in rsnd_src_soft_reset()
124 rsnd_mod_write(mod, SRC_SWRSR, 1); in rsnd_src_soft_reset()
128 #define rsnd_src_initialize_lock(mod) __rsnd_src_initialize_lock(mod, 1) argument
129 #define rsnd_src_initialize_unlock(mod) __rsnd_src_initialize_lock(mod, 0) argument
130 static void __rsnd_src_initialize_lock(struct rsnd_mod *mod, u32 enable) in __rsnd_src_initialize_lock() argument
132 rsnd_mod_write(mod, SRC_SRCIR, enable); in __rsnd_src_initialize_lock()
136 struct rsnd_mod *mod) in rsnd_src_dma_req() argument
138 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_src_dma_req()
142 mod, in rsnd_src_dma_req()
286 static int rsnd_src_set_convert_rate(struct rsnd_mod *mod, in rsnd_src_set_convert_rate() argument
290 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_rate()
298 rsnd_mod_write(mod, SRC_ADINR, rsnd_get_adinr_bit(mod, io)); in rsnd_src_set_convert_rate()
302 rsnd_mod_write(mod, SRC_IFSCR, 1); in rsnd_src_set_convert_rate()
305 rsnd_mod_write(mod, SRC_IFSVR, fsrate); in rsnd_src_set_convert_rate()
309 rsnd_mod_write(mod, SRC_BUSIF_MODE, 1); in rsnd_src_set_convert_rate()
314 static int rsnd_src_hw_params(struct rsnd_mod *mod, in rsnd_src_hw_params() argument
319 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_hw_params()
350 static int rsnd_src_init(struct rsnd_mod *mod, in rsnd_src_init() argument
353 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_init()
355 rsnd_mod_power_on(mod); in rsnd_src_init()
357 rsnd_src_soft_reset(mod); in rsnd_src_init()
359 rsnd_src_initialize_lock(mod); in rsnd_src_init()
369 static int rsnd_src_quit(struct rsnd_mod *mod, in rsnd_src_quit() argument
373 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_quit()
376 rsnd_mod_power_off(mod); in rsnd_src_quit()
380 rsnd_mod_name(mod), rsnd_mod_id(mod), src->err); in rsnd_src_quit()
390 static int rsnd_src_start(struct rsnd_mod *mod) in rsnd_src_start() argument
392 rsnd_src_initialize_unlock(mod); in rsnd_src_start()
397 static int rsnd_src_stop(struct rsnd_mod *mod) in rsnd_src_stop() argument
407 struct rsnd_mod *mod) in rsnd_src_set_route_gen1() argument
427 id = rsnd_mod_id(mod); in rsnd_src_set_route_gen1()
438 rsnd_mod_bset(mod, SRC_ROUTE_SEL, mask, val); in rsnd_src_set_route_gen1()
444 struct rsnd_mod *mod) in rsnd_src_set_convert_timing_gen1() argument
446 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_src_set_convert_timing_gen1()
447 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_timing_gen1()
453 int id = rsnd_mod_id(mod); in rsnd_src_set_convert_timing_gen1()
472 ret = rsnd_adg_set_convert_clk_gen1(priv, mod, in rsnd_src_set_convert_timing_gen1()
488 rsnd_mod_bset(mod, SRC_TMG_SEL0, mask, val); in rsnd_src_set_convert_timing_gen1()
491 rsnd_mod_bset(mod, SRC_TMG_SEL1, mask, val); in rsnd_src_set_convert_timing_gen1()
494 rsnd_mod_bset(mod, SRC_TMG_SEL2, mask, val); in rsnd_src_set_convert_timing_gen1()
501 static int rsnd_src_set_convert_rate_gen1(struct rsnd_mod *mod, in rsnd_src_set_convert_rate_gen1() argument
504 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_rate_gen1()
507 ret = rsnd_src_set_convert_rate(mod, io); in rsnd_src_set_convert_rate_gen1()
512 rsnd_mod_write(mod, SRC_SRCCR, 0x00010110); in rsnd_src_set_convert_rate_gen1()
515 rsnd_mod_write(mod, SRC_MNFSR, in rsnd_src_set_convert_rate_gen1()
516 rsnd_mod_read(mod, SRC_IFSVR) / 100 * 98); in rsnd_src_set_convert_rate_gen1()
520 rsnd_mod_write(mod, SRC_ROUTE_MODE0, 1); in rsnd_src_set_convert_rate_gen1()
527 static int rsnd_src_init_gen1(struct rsnd_mod *mod, in rsnd_src_init_gen1() argument
533 ret = rsnd_src_init(mod, priv); in rsnd_src_init_gen1()
537 ret = rsnd_src_set_route_gen1(io, mod); in rsnd_src_init_gen1()
541 ret = rsnd_src_set_convert_rate_gen1(mod, io); in rsnd_src_init_gen1()
545 ret = rsnd_src_set_convert_timing_gen1(io, mod); in rsnd_src_init_gen1()
552 static int rsnd_src_start_gen1(struct rsnd_mod *mod, in rsnd_src_start_gen1() argument
556 int id = rsnd_mod_id(mod); in rsnd_src_start_gen1()
558 rsnd_mod_bset(mod, SRC_ROUTE_CTRL, (1 << id), (1 << id)); in rsnd_src_start_gen1()
560 return rsnd_src_start(mod); in rsnd_src_start_gen1()
563 static int rsnd_src_stop_gen1(struct rsnd_mod *mod, in rsnd_src_stop_gen1() argument
567 int id = rsnd_mod_id(mod); in rsnd_src_stop_gen1()
569 rsnd_mod_bset(mod, SRC_ROUTE_CTRL, (1 << id), 0); in rsnd_src_stop_gen1()
571 return rsnd_src_stop(mod); in rsnd_src_stop_gen1()
587 #define rsnd_src_irq_enable_gen2(mod) rsnd_src_irq_ctrol_gen2(mod, 1) argument
588 #define rsnd_src_irq_disable_gen2(mod) rsnd_src_irq_ctrol_gen2(mod, 0) argument
589 static void rsnd_src_irq_ctrol_gen2(struct rsnd_mod *mod, int enable) in rsnd_src_irq_ctrol_gen2() argument
591 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_irq_ctrol_gen2()
594 int id = rsnd_mod_id(mod); in rsnd_src_irq_ctrol_gen2()
618 rsnd_mod_write(mod, SRC_INT_ENABLE0, int_val); in rsnd_src_irq_ctrol_gen2()
619 rsnd_mod_bset(mod, SCU_SYS_INT_EN0, sys_int_mask, sys_int_val); in rsnd_src_irq_ctrol_gen2()
620 rsnd_mod_bset(mod, SCU_SYS_INT_EN1, sys_int_mask, sys_int_val); in rsnd_src_irq_ctrol_gen2()
623 static void rsnd_src_error_clear_gen2(struct rsnd_mod *mod) in rsnd_src_error_clear_gen2() argument
625 u32 val = OUF_SRC(rsnd_mod_id(mod)); in rsnd_src_error_clear_gen2()
627 rsnd_mod_bset(mod, SCU_SYS_STATUS0, val, val); in rsnd_src_error_clear_gen2()
628 rsnd_mod_bset(mod, SCU_SYS_STATUS1, val, val); in rsnd_src_error_clear_gen2()
631 static bool rsnd_src_error_record_gen2(struct rsnd_mod *mod) in rsnd_src_error_record_gen2() argument
633 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_error_record_gen2()
637 val0 = val1 = OUF_SRC(rsnd_mod_id(mod)); in rsnd_src_error_record_gen2()
647 if ((rsnd_mod_read(mod, SCU_SYS_STATUS0) & val0) || in rsnd_src_error_record_gen2()
648 (rsnd_mod_read(mod, SCU_SYS_STATUS1) & val1)) { in rsnd_src_error_record_gen2()
649 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_error_record_gen2()
656 rsnd_src_error_clear_gen2(mod); in rsnd_src_error_record_gen2()
661 static int _rsnd_src_start_gen2(struct rsnd_mod *mod, in _rsnd_src_start_gen2() argument
664 struct rsnd_src *src = rsnd_mod_to_src(mod); in _rsnd_src_start_gen2()
667 val = rsnd_get_dalign(mod, io); in _rsnd_src_start_gen2()
669 rsnd_mod_write(mod, SRC_BUSIF_DALIGN, val); in _rsnd_src_start_gen2()
679 rsnd_mod_write(mod, SRC_CTRL, val); in _rsnd_src_start_gen2()
681 rsnd_src_error_clear_gen2(mod); in _rsnd_src_start_gen2()
683 rsnd_src_start(mod); in _rsnd_src_start_gen2()
685 rsnd_src_irq_enable_gen2(mod); in _rsnd_src_start_gen2()
690 static int _rsnd_src_stop_gen2(struct rsnd_mod *mod) in _rsnd_src_stop_gen2() argument
692 rsnd_src_irq_disable_gen2(mod); in _rsnd_src_stop_gen2()
694 rsnd_mod_write(mod, SRC_CTRL, 0); in _rsnd_src_stop_gen2()
696 rsnd_src_error_record_gen2(mod); in _rsnd_src_stop_gen2()
698 return rsnd_src_stop(mod); in _rsnd_src_stop_gen2()
701 static void __rsnd_src_interrupt_gen2(struct rsnd_mod *mod, in __rsnd_src_interrupt_gen2() argument
704 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in __rsnd_src_interrupt_gen2()
712 if (rsnd_src_error_record_gen2(mod)) { in __rsnd_src_interrupt_gen2()
713 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in __rsnd_src_interrupt_gen2()
714 struct rsnd_src *src = rsnd_mod_to_src(mod); in __rsnd_src_interrupt_gen2()
718 rsnd_mod_name(mod), rsnd_mod_id(mod)); in __rsnd_src_interrupt_gen2()
720 _rsnd_src_stop_gen2(mod); in __rsnd_src_interrupt_gen2()
722 _rsnd_src_start_gen2(mod, io); in __rsnd_src_interrupt_gen2()
733 struct rsnd_mod *mod = data; in rsnd_src_interrupt_gen2() local
735 rsnd_mod_interrupt(mod, __rsnd_src_interrupt_gen2); in rsnd_src_interrupt_gen2()
740 static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod, in rsnd_src_set_convert_rate_gen2() argument
743 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_src_set_convert_rate_gen2()
746 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_rate_gen2()
765 ret = rsnd_src_set_convert_rate(mod, io); in rsnd_src_set_convert_rate_gen2()
781 rsnd_mod_write(mod, SRC_SRCCR, cr); in rsnd_src_set_convert_rate_gen2()
782 rsnd_mod_write(mod, SRC_ROUTE_MODE0, route); in rsnd_src_set_convert_rate_gen2()
784 switch (rsnd_mod_id(mod)) { in rsnd_src_set_convert_rate_gen2()
789 rsnd_mod_write(mod, SRC_BSDSR, 0x02400000); in rsnd_src_set_convert_rate_gen2()
792 rsnd_mod_write(mod, SRC_BSDSR, 0x01800000); in rsnd_src_set_convert_rate_gen2()
796 rsnd_mod_write(mod, SRC_BSISR, 0x00100060); in rsnd_src_set_convert_rate_gen2()
802 struct rsnd_mod *mod) in rsnd_src_set_convert_timing_gen2() argument
805 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_set_convert_timing_gen2()
810 ret = rsnd_adg_set_convert_clk_gen2(mod, io, in rsnd_src_set_convert_timing_gen2()
814 ret = rsnd_adg_set_convert_timing_gen2(mod, io); in rsnd_src_set_convert_timing_gen2()
819 static int rsnd_src_probe_gen2(struct rsnd_mod *mod, in rsnd_src_probe_gen2() argument
823 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_probe_gen2()
837 dev_name(dev), mod); in rsnd_src_probe_gen2()
843 rsnd_mod_to_dma(mod), in rsnd_src_probe_gen2()
849 static int rsnd_src_remove_gen2(struct rsnd_mod *mod, in rsnd_src_remove_gen2() argument
853 rsnd_dma_quit(io, rsnd_mod_to_dma(mod)); in rsnd_src_remove_gen2()
858 static int rsnd_src_init_gen2(struct rsnd_mod *mod, in rsnd_src_init_gen2() argument
864 ret = rsnd_src_init(mod, priv); in rsnd_src_init_gen2()
868 ret = rsnd_src_set_convert_rate_gen2(mod, io); in rsnd_src_init_gen2()
872 ret = rsnd_src_set_convert_timing_gen2(io, mod); in rsnd_src_init_gen2()
879 static int rsnd_src_start_gen2(struct rsnd_mod *mod, in rsnd_src_start_gen2() argument
883 rsnd_dma_start(io, rsnd_mod_to_dma(mod)); in rsnd_src_start_gen2()
885 return _rsnd_src_start_gen2(mod, io); in rsnd_src_start_gen2()
888 static int rsnd_src_stop_gen2(struct rsnd_mod *mod, in rsnd_src_stop_gen2() argument
894 ret = _rsnd_src_stop_gen2(mod); in rsnd_src_stop_gen2()
896 rsnd_dma_stop(io, rsnd_mod_to_dma(mod)); in rsnd_src_stop_gen2()
902 struct rsnd_mod *mod) in rsnd_src_reconvert_update() argument
905 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_reconvert_update()
918 rsnd_mod_write(mod, SRC_IFSVR, fsrate); in rsnd_src_reconvert_update()
921 static int rsnd_src_pcm_new_gen2(struct rsnd_mod *mod, in rsnd_src_pcm_new_gen2() argument
927 struct rsnd_src *src = rsnd_mod_to_src(mod); in rsnd_src_pcm_new_gen2()
949 ret = rsnd_kctrl_new_s(mod, io, rtd, in rsnd_src_pcm_new_gen2()
958 ret = rsnd_kctrl_new_s(mod, io, rtd, in rsnd_src_pcm_new_gen2()