Lines Matching refs:srcimp_mgr
670 struct srcimp_mgr *mgr)
714 static int get_srcimp_rsc(struct srcimp_mgr *mgr,
764 static int put_srcimp_rsc(struct srcimp_mgr *mgr, struct srcimp *srcimp)
782 struct rsc_mgr *mgr = &((struct srcimp_mgr *)data)->mgr;
794 static int srcimp_imap_add(struct srcimp_mgr *mgr, struct imapper *entry)
811 static int srcimp_imap_delete(struct srcimp_mgr *mgr, struct imapper *entry)
828 int srcimp_mgr_create(void *hw, struct srcimp_mgr **rsrcimp_mgr)
831 struct srcimp_mgr *srcimp_mgr;
835 srcimp_mgr = kzalloc(sizeof(*srcimp_mgr), GFP_KERNEL);
836 if (!srcimp_mgr)
839 err = rsc_mgr_init(&srcimp_mgr->mgr, SRCIMP, SRCIMP_RESOURCE_NUM, hw);
843 spin_lock_init(&srcimp_mgr->mgr_lock);
844 spin_lock_init(&srcimp_mgr->imap_lock);
845 INIT_LIST_HEAD(&srcimp_mgr->imappers);
852 list_add(&entry->list, &srcimp_mgr->imappers);
853 srcimp_mgr->init_imap = entry;
854 srcimp_mgr->init_imap_added = 1;
856 srcimp_mgr->get_srcimp = get_srcimp_rsc;
857 srcimp_mgr->put_srcimp = put_srcimp_rsc;
858 srcimp_mgr->imap_add = srcimp_imap_add;
859 srcimp_mgr->imap_delete = srcimp_imap_delete;
861 *rsrcimp_mgr = srcimp_mgr;
866 rsc_mgr_uninit(&srcimp_mgr->mgr);
868 kfree(srcimp_mgr);
872 int srcimp_mgr_destroy(struct srcimp_mgr *srcimp_mgr)
877 spin_lock_irqsave(&srcimp_mgr->imap_lock, flags);
878 free_input_mapper_list(&srcimp_mgr->imappers);
879 spin_unlock_irqrestore(&srcimp_mgr->imap_lock, flags);
881 rsc_mgr_uninit(&srcimp_mgr->mgr);
882 kfree(srcimp_mgr);