Lines Matching refs:ctrl

24 void amp_ctrl_get(struct amp_ctrl *ctrl)  in amp_ctrl_get()  argument
26 BT_DBG("ctrl %p orig refcnt %d", ctrl, in amp_ctrl_get()
27 atomic_read(&ctrl->kref.refcount)); in amp_ctrl_get()
29 kref_get(&ctrl->kref); in amp_ctrl_get()
34 struct amp_ctrl *ctrl = container_of(kref, struct amp_ctrl, kref); in amp_ctrl_destroy() local
36 BT_DBG("ctrl %p", ctrl); in amp_ctrl_destroy()
38 kfree(ctrl->assoc); in amp_ctrl_destroy()
39 kfree(ctrl); in amp_ctrl_destroy()
42 int amp_ctrl_put(struct amp_ctrl *ctrl) in amp_ctrl_put() argument
44 BT_DBG("ctrl %p orig refcnt %d", ctrl, in amp_ctrl_put()
45 atomic_read(&ctrl->kref.refcount)); in amp_ctrl_put()
47 return kref_put(&ctrl->kref, &amp_ctrl_destroy); in amp_ctrl_put()
52 struct amp_ctrl *ctrl; in amp_ctrl_add() local
54 ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL); in amp_ctrl_add()
55 if (!ctrl) in amp_ctrl_add()
58 kref_init(&ctrl->kref); in amp_ctrl_add()
59 ctrl->id = id; in amp_ctrl_add()
62 list_add(&ctrl->list, &mgr->amp_ctrls); in amp_ctrl_add()
65 BT_DBG("mgr %p ctrl %p", mgr, ctrl); in amp_ctrl_add()
67 return ctrl; in amp_ctrl_add()
72 struct amp_ctrl *ctrl, *n; in amp_ctrl_list_flush() local
77 list_for_each_entry_safe(ctrl, n, &mgr->amp_ctrls, list) { in amp_ctrl_list_flush()
78 list_del(&ctrl->list); in amp_ctrl_list_flush()
79 amp_ctrl_put(ctrl); in amp_ctrl_list_flush()
86 struct amp_ctrl *ctrl; in amp_ctrl_lookup() local
91 list_for_each_entry(ctrl, &mgr->amp_ctrls, list) { in amp_ctrl_lookup()
92 if (ctrl->id == id) { in amp_ctrl_lookup()
93 amp_ctrl_get(ctrl); in amp_ctrl_lookup()
95 return ctrl; in amp_ctrl_lookup()
342 struct amp_ctrl *ctrl; in amp_write_rem_assoc_frag() local
346 ctrl = amp_ctrl_lookup(mgr, hcon->remote_id); in amp_write_rem_assoc_frag()
347 if (!ctrl) in amp_write_rem_assoc_frag()
350 if (!ctrl->assoc_rem_len) { in amp_write_rem_assoc_frag()
352 ctrl->assoc_rem_len = ctrl->assoc_len; in amp_write_rem_assoc_frag()
353 ctrl->assoc_len_so_far = 0; in amp_write_rem_assoc_frag()
355 amp_ctrl_put(ctrl); in amp_write_rem_assoc_frag()
359 frag_len = min_t(u16, 248, ctrl->assoc_rem_len); in amp_write_rem_assoc_frag()
364 amp_ctrl_put(ctrl); in amp_write_rem_assoc_frag()
369 hcon, ctrl, frag_len, ctrl->assoc_len, ctrl->assoc_rem_len); in amp_write_rem_assoc_frag()
372 cp->len_so_far = cpu_to_le16(ctrl->assoc_len_so_far); in amp_write_rem_assoc_frag()
373 cp->rem_len = cpu_to_le16(ctrl->assoc_rem_len); in amp_write_rem_assoc_frag()
374 memcpy(cp->frag, ctrl->assoc, frag_len); in amp_write_rem_assoc_frag()
376 ctrl->assoc_len_so_far += frag_len; in amp_write_rem_assoc_frag()
377 ctrl->assoc_rem_len -= frag_len; in amp_write_rem_assoc_frag()
379 amp_ctrl_put(ctrl); in amp_write_rem_assoc_frag()