Lines Matching refs:ref
57 dpll_pin_registration_find(struct dpll_pin_ref *ref, in dpll_pin_registration_find() argument
63 list_for_each_entry(reg, &ref->registration_list, list) { in dpll_pin_registration_find()
77 struct dpll_pin_ref *ref; in dpll_xa_ref_pin_add() local
82 xa_for_each(xa_pins, i, ref) { in dpll_xa_ref_pin_add()
83 if (ref->pin != pin) in dpll_xa_ref_pin_add()
85 reg = dpll_pin_registration_find(ref, ops, priv, cookie); in dpll_xa_ref_pin_add()
87 refcount_inc(&ref->refcount); in dpll_xa_ref_pin_add()
95 ref = kzalloc(sizeof(*ref), GFP_KERNEL); in dpll_xa_ref_pin_add()
96 if (!ref) in dpll_xa_ref_pin_add()
98 ref->pin = pin; in dpll_xa_ref_pin_add()
99 INIT_LIST_HEAD(&ref->registration_list); in dpll_xa_ref_pin_add()
100 ret = xa_insert(xa_pins, pin->pin_idx, ref, GFP_KERNEL); in dpll_xa_ref_pin_add()
102 kfree(ref); in dpll_xa_ref_pin_add()
105 refcount_set(&ref->refcount, 1); in dpll_xa_ref_pin_add()
112 kfree(ref); in dpll_xa_ref_pin_add()
120 refcount_inc(&ref->refcount); in dpll_xa_ref_pin_add()
121 list_add_tail(®->list, &ref->registration_list); in dpll_xa_ref_pin_add()
131 struct dpll_pin_ref *ref; in dpll_xa_ref_pin_del() local
134 xa_for_each(xa_pins, i, ref) { in dpll_xa_ref_pin_del()
135 if (ref->pin != pin) in dpll_xa_ref_pin_del()
137 reg = dpll_pin_registration_find(ref, ops, priv, cookie); in dpll_xa_ref_pin_del()
142 if (refcount_dec_and_test(&ref->refcount)) { in dpll_xa_ref_pin_del()
144 WARN_ON(!list_empty(&ref->registration_list)); in dpll_xa_ref_pin_del()
145 kfree(ref); in dpll_xa_ref_pin_del()
158 struct dpll_pin_ref *ref; in dpll_xa_ref_dpll_add() local
163 xa_for_each(xa_dplls, i, ref) { in dpll_xa_ref_dpll_add()
164 if (ref->dpll != dpll) in dpll_xa_ref_dpll_add()
166 reg = dpll_pin_registration_find(ref, ops, priv, cookie); in dpll_xa_ref_dpll_add()
168 refcount_inc(&ref->refcount); in dpll_xa_ref_dpll_add()
176 ref = kzalloc(sizeof(*ref), GFP_KERNEL); in dpll_xa_ref_dpll_add()
177 if (!ref) in dpll_xa_ref_dpll_add()
179 ref->dpll = dpll; in dpll_xa_ref_dpll_add()
180 INIT_LIST_HEAD(&ref->registration_list); in dpll_xa_ref_dpll_add()
181 ret = xa_insert(xa_dplls, dpll->id, ref, GFP_KERNEL); in dpll_xa_ref_dpll_add()
183 kfree(ref); in dpll_xa_ref_dpll_add()
186 refcount_set(&ref->refcount, 1); in dpll_xa_ref_dpll_add()
193 kfree(ref); in dpll_xa_ref_dpll_add()
201 refcount_inc(&ref->refcount); in dpll_xa_ref_dpll_add()
202 list_add_tail(®->list, &ref->registration_list); in dpll_xa_ref_dpll_add()
212 struct dpll_pin_ref *ref; in dpll_xa_ref_dpll_del() local
215 xa_for_each(xa_dplls, i, ref) { in dpll_xa_ref_dpll_del()
216 if (ref->dpll != dpll) in dpll_xa_ref_dpll_del()
218 reg = dpll_pin_registration_find(ref, ops, priv, cookie); in dpll_xa_ref_dpll_del()
223 if (refcount_dec_and_test(&ref->refcount)) { in dpll_xa_ref_dpll_del()
225 WARN_ON(!list_empty(&ref->registration_list)); in dpll_xa_ref_dpll_del()
226 kfree(ref); in dpll_xa_ref_dpll_del()
234 struct dpll_pin_ref *ref; in dpll_xa_ref_dpll_first() local
237 ref = xa_find(xa_refs, &i, ULONG_MAX, XA_PRESENT); in dpll_xa_ref_dpll_first()
238 WARN_ON(!ref); in dpll_xa_ref_dpll_first()
239 return ref; in dpll_xa_ref_dpll_first()
713 struct dpll_pin_ref *ref; in dpll_pin_on_pin_register() local
730 xa_for_each(&parent->dpll_refs, i, ref) { in dpll_pin_on_pin_register()
731 ret = __dpll_pin_register(ref->dpll, pin, ops, priv, parent); in dpll_pin_on_pin_register()
743 xa_for_each(&parent->dpll_refs, i, ref) in dpll_pin_on_pin_register()
745 __dpll_pin_unregister(ref->dpll, pin, ops, priv, in dpll_pin_on_pin_register()
770 struct dpll_pin_ref *ref; in dpll_pin_on_pin_unregister() local
777 xa_for_each(&pin->dpll_refs, i, ref) in dpll_pin_on_pin_unregister()
778 __dpll_pin_unregister(ref->dpll, pin, ops, priv, parent); in dpll_pin_on_pin_unregister()
811 dpll_pin_registration_first(struct dpll_pin_ref *ref) in dpll_pin_registration_first() argument
815 reg = list_first_entry_or_null(&ref->registration_list, in dpll_pin_registration_first()
825 struct dpll_pin_ref *ref; in dpll_pin_on_dpll_priv() local
827 ref = xa_load(&dpll->pin_refs, pin->pin_idx); in dpll_pin_on_dpll_priv()
828 if (!ref) in dpll_pin_on_dpll_priv()
830 reg = dpll_pin_registration_first(ref); in dpll_pin_on_dpll_priv()
838 struct dpll_pin_ref *ref; in dpll_pin_on_pin_priv() local
840 ref = xa_load(&pin->parent_refs, parent->pin_idx); in dpll_pin_on_pin_priv()
841 if (!ref) in dpll_pin_on_pin_priv()
843 reg = dpll_pin_registration_first(ref); in dpll_pin_on_pin_priv()
847 const struct dpll_pin_ops *dpll_pin_ops(struct dpll_pin_ref *ref) in dpll_pin_ops() argument
851 reg = dpll_pin_registration_first(ref); in dpll_pin_ops()