Lines Matching refs:mgr
77 int mgr_get_resource(struct rsc_mgr *mgr, unsigned int n, unsigned int *ridx) in mgr_get_resource() argument
81 if (n > mgr->avail) in mgr_get_resource()
84 err = get_resource(mgr->rscs, mgr->amount, n, ridx); in mgr_get_resource()
86 mgr->avail -= n; in mgr_get_resource()
91 int mgr_put_resource(struct rsc_mgr *mgr, unsigned int n, unsigned int idx) in mgr_put_resource() argument
93 put_resource(mgr->rscs, n, idx); in mgr_put_resource()
94 mgr->avail += n; in mgr_put_resource()
208 int rsc_mgr_init(struct rsc_mgr *mgr, enum RSCTYP type, in rsc_mgr_init() argument
213 mgr->type = NUM_RSCTYP; in rsc_mgr_init()
215 mgr->rscs = kzalloc(((amount + 8 - 1) / 8), GFP_KERNEL); in rsc_mgr_init()
216 if (!mgr->rscs) in rsc_mgr_init()
221 err = hw->src_mgr_get_ctrl_blk(&mgr->ctrl_blk); in rsc_mgr_init()
224 err = hw->srcimp_mgr_get_ctrl_blk(&mgr->ctrl_blk); in rsc_mgr_init()
227 err = hw->amixer_mgr_get_ctrl_blk(&mgr->ctrl_blk); in rsc_mgr_init()
230 err = hw->daio_mgr_get_ctrl_blk(hw, &mgr->ctrl_blk); in rsc_mgr_init()
247 mgr->type = type; in rsc_mgr_init()
248 mgr->avail = mgr->amount = amount; in rsc_mgr_init()
249 mgr->hw = hw; in rsc_mgr_init()
254 kfree(mgr->rscs); in rsc_mgr_init()
258 int rsc_mgr_uninit(struct rsc_mgr *mgr) in rsc_mgr_uninit() argument
260 if (NULL != mgr->rscs) { in rsc_mgr_uninit()
261 kfree(mgr->rscs); in rsc_mgr_uninit()
262 mgr->rscs = NULL; in rsc_mgr_uninit()
265 if ((NULL != mgr->hw) && (NULL != mgr->ctrl_blk)) { in rsc_mgr_uninit()
266 switch (mgr->type) { in rsc_mgr_uninit()
268 mgr->hw->src_mgr_put_ctrl_blk(mgr->ctrl_blk); in rsc_mgr_uninit()
271 mgr->hw->srcimp_mgr_put_ctrl_blk(mgr->ctrl_blk); in rsc_mgr_uninit()
274 mgr->hw->amixer_mgr_put_ctrl_blk(mgr->ctrl_blk); in rsc_mgr_uninit()
277 mgr->hw->daio_mgr_put_ctrl_blk(mgr->ctrl_blk); in rsc_mgr_uninit()
282 dev_err(((struct hw *)mgr->hw)->card->dev, in rsc_mgr_uninit()
284 mgr->type); in rsc_mgr_uninit()
288 mgr->hw = mgr->ctrl_blk = NULL; in rsc_mgr_uninit()
291 mgr->type = NUM_RSCTYP; in rsc_mgr_uninit()
292 mgr->avail = mgr->amount = 0; in rsc_mgr_uninit()