Lines Matching refs:mgr
361 const struct src_desc *desc, struct src_mgr *mgr) in src_rsc_init() argument
369 err = rsc_init(&p->rsc, idx + i, SRC, desc->msr, mgr->mgr.hw); in src_rsc_init()
378 mgr->src_enable(mgr, p); in src_rsc_init()
383 mgr->commit_write(mgr); in src_rsc_init()
389 mgr->src_disable(mgr, p); in src_rsc_init()
392 mgr->commit_write(mgr); in src_rsc_init()
396 static int src_rsc_uninit(struct src *src, struct src_mgr *mgr) in src_rsc_uninit() argument
403 mgr->src_disable(mgr, p); in src_rsc_uninit()
410 mgr->commit_write(mgr); in src_rsc_uninit()
416 get_src_rsc(struct src_mgr *mgr, const struct src_desc *desc, struct src **rsrc) in get_src_rsc() argument
426 spin_lock_irqsave(&mgr->mgr_lock, flags); in get_src_rsc()
428 err = mgr_get_resource(&mgr->mgr, desc->multi, &idx); in get_src_rsc()
430 err = mgr_get_resource(&mgr->mgr, 1, &idx); in get_src_rsc()
432 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in get_src_rsc()
434 dev_err(mgr->card->dev, in get_src_rsc()
450 err = src_rsc_init(src, idx, desc, mgr); in get_src_rsc()
461 spin_lock_irqsave(&mgr->mgr_lock, flags); in get_src_rsc()
463 mgr_put_resource(&mgr->mgr, desc->multi, idx); in get_src_rsc()
465 mgr_put_resource(&mgr->mgr, 1, idx); in get_src_rsc()
467 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in get_src_rsc()
471 static int put_src_rsc(struct src_mgr *mgr, struct src *src) in put_src_rsc() argument
475 spin_lock_irqsave(&mgr->mgr_lock, flags); in put_src_rsc()
478 mgr_put_resource(&mgr->mgr, src->multi, in put_src_rsc()
481 mgr_put_resource(&mgr->mgr, 1, src->rsc.ops->index(&src->rsc)); in put_src_rsc()
483 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in put_src_rsc()
484 src_rsc_uninit(src, mgr); in put_src_rsc()
490 static int src_enable_s(struct src_mgr *mgr, struct src *src) in src_enable_s() argument
492 struct hw *hw = mgr->mgr.hw; in src_enable_s()
497 hw->src_mgr_enbs_src(mgr->mgr.ctrl_blk, in src_enable_s()
506 static int src_enable(struct src_mgr *mgr, struct src *src) in src_enable() argument
508 struct hw *hw = mgr->mgr.hw; in src_enable()
513 hw->src_mgr_enb_src(mgr->mgr.ctrl_blk, in src_enable()
522 static int src_disable(struct src_mgr *mgr, struct src *src) in src_disable() argument
524 struct hw *hw = mgr->mgr.hw; in src_disable()
529 hw->src_mgr_dsb_src(mgr->mgr.ctrl_blk, in src_disable()
538 static int src_mgr_commit_write(struct src_mgr *mgr) in src_mgr_commit_write() argument
540 struct hw *hw = mgr->mgr.hw; in src_mgr_commit_write()
542 hw->src_mgr_commit_write(hw, mgr->mgr.ctrl_blk); in src_mgr_commit_write()
557 err = rsc_mgr_init(&src_mgr->mgr, SRC, SRC_RESOURCE_NUM, hw); in src_mgr_create()
574 hw->src_mgr_dsb_src(src_mgr->mgr.ctrl_blk, i); in src_mgr_create()
576 hw->src_mgr_commit_write(hw, src_mgr->mgr.ctrl_blk); in src_mgr_create()
589 rsc_mgr_uninit(&src_mgr->mgr); in src_mgr_destroy()
635 srcimp->mgr->imap_add(srcimp->mgr, entry); in srcimp_map()
655 srcimp->mgr->imap_delete(srcimp->mgr, in srcimp_unmap()
671 struct srcimp_mgr *mgr) in srcimp_rsc_init() argument
676 SRCIMP, desc->msr, mgr->mgr.hw); in srcimp_rsc_init()
691 srcimp->mgr = mgr; in srcimp_rsc_init()
709 srcimp->mgr = NULL; in srcimp_rsc_uninit()
715 static int get_srcimp_rsc(struct srcimp_mgr *mgr, in get_srcimp_rsc() argument
733 spin_lock_irqsave(&mgr->mgr_lock, flags); in get_srcimp_rsc()
735 err = mgr_get_resource(&mgr->mgr, 1, &idx); in get_srcimp_rsc()
741 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in get_srcimp_rsc()
743 dev_err(mgr->card->dev, in get_srcimp_rsc()
748 err = srcimp_rsc_init(srcimp, desc, mgr); in get_srcimp_rsc()
757 spin_lock_irqsave(&mgr->mgr_lock, flags); in get_srcimp_rsc()
759 mgr_put_resource(&mgr->mgr, 1, srcimp->idx[i]); in get_srcimp_rsc()
761 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in get_srcimp_rsc()
766 static int put_srcimp_rsc(struct srcimp_mgr *mgr, struct srcimp *srcimp) in put_srcimp_rsc() argument
771 spin_lock_irqsave(&mgr->mgr_lock, flags); in put_srcimp_rsc()
773 mgr_put_resource(&mgr->mgr, 1, srcimp->idx[i]); in put_srcimp_rsc()
775 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in put_srcimp_rsc()
784 struct rsc_mgr *mgr = &((struct srcimp_mgr *)data)->mgr; in srcimp_map_op() local
785 struct hw *hw = mgr->hw; in srcimp_map_op()
787 hw->srcimp_mgr_set_imaparc(mgr->ctrl_blk, entry->slot); in srcimp_map_op()
788 hw->srcimp_mgr_set_imapuser(mgr->ctrl_blk, entry->user); in srcimp_map_op()
789 hw->srcimp_mgr_set_imapnxt(mgr->ctrl_blk, entry->next); in srcimp_map_op()
790 hw->srcimp_mgr_set_imapaddr(mgr->ctrl_blk, entry->addr); in srcimp_map_op()
791 hw->srcimp_mgr_commit_write(mgr->hw, mgr->ctrl_blk); in srcimp_map_op()
796 static int srcimp_imap_add(struct srcimp_mgr *mgr, struct imapper *entry) in srcimp_imap_add() argument
801 spin_lock_irqsave(&mgr->imap_lock, flags); in srcimp_imap_add()
802 if ((0 == entry->addr) && (mgr->init_imap_added)) { in srcimp_imap_add()
803 input_mapper_delete(&mgr->imappers, in srcimp_imap_add()
804 mgr->init_imap, srcimp_map_op, mgr); in srcimp_imap_add()
805 mgr->init_imap_added = 0; in srcimp_imap_add()
807 err = input_mapper_add(&mgr->imappers, entry, srcimp_map_op, mgr); in srcimp_imap_add()
808 spin_unlock_irqrestore(&mgr->imap_lock, flags); in srcimp_imap_add()
813 static int srcimp_imap_delete(struct srcimp_mgr *mgr, struct imapper *entry) in srcimp_imap_delete() argument
818 spin_lock_irqsave(&mgr->imap_lock, flags); in srcimp_imap_delete()
819 err = input_mapper_delete(&mgr->imappers, entry, srcimp_map_op, mgr); in srcimp_imap_delete()
820 if (list_empty(&mgr->imappers)) { in srcimp_imap_delete()
821 input_mapper_add(&mgr->imappers, mgr->init_imap, in srcimp_imap_delete()
822 srcimp_map_op, mgr); in srcimp_imap_delete()
823 mgr->init_imap_added = 1; in srcimp_imap_delete()
825 spin_unlock_irqrestore(&mgr->imap_lock, flags); in srcimp_imap_delete()
841 err = rsc_mgr_init(&srcimp_mgr->mgr, SRCIMP, SRCIMP_RESOURCE_NUM, hw); in srcimp_mgr_create()
869 rsc_mgr_uninit(&srcimp_mgr->mgr); in srcimp_mgr_create()
884 rsc_mgr_uninit(&srcimp_mgr->mgr); in srcimp_mgr_destroy()