Lines Matching refs:dpll
34 dpll_msg_add_dev_handle(struct sk_buff *msg, struct dpll_device *dpll) in dpll_msg_add_dev_handle() argument
36 if (nla_put_u32(msg, DPLL_A_ID, dpll->id)) in dpll_msg_add_dev_handle()
63 if (xa_get_mark(&dpll_device_xa, par_ref->dpll->id, in dpll_pin_available()
110 dpll_msg_add_mode(struct sk_buff *msg, struct dpll_device *dpll, in dpll_msg_add_mode() argument
113 const struct dpll_device_ops *ops = dpll_device_ops(dpll); in dpll_msg_add_mode()
117 ret = ops->mode_get(dpll, dpll_priv(dpll), &mode, extack); in dpll_msg_add_mode()
127 dpll_msg_add_mode_supported(struct sk_buff *msg, struct dpll_device *dpll, in dpll_msg_add_mode_supported() argument
130 const struct dpll_device_ops *ops = dpll_device_ops(dpll); in dpll_msg_add_mode_supported()
138 ret = ops->mode_get(dpll, dpll_priv(dpll), &mode, extack); in dpll_msg_add_mode_supported()
148 dpll_msg_add_phase_offset_monitor(struct sk_buff *msg, struct dpll_device *dpll, in dpll_msg_add_phase_offset_monitor() argument
151 const struct dpll_device_ops *ops = dpll_device_ops(dpll); in dpll_msg_add_phase_offset_monitor()
156 ret = ops->phase_offset_monitor_get(dpll, dpll_priv(dpll), in dpll_msg_add_phase_offset_monitor()
168 dpll_msg_add_lock_status(struct sk_buff *msg, struct dpll_device *dpll, in dpll_msg_add_lock_status() argument
171 const struct dpll_device_ops *ops = dpll_device_ops(dpll); in dpll_msg_add_lock_status()
176 ret = ops->lock_status_get(dpll, dpll_priv(dpll), &status, in dpll_msg_add_lock_status()
192 dpll_msg_add_temp(struct sk_buff *msg, struct dpll_device *dpll, in dpll_msg_add_temp() argument
195 const struct dpll_device_ops *ops = dpll_device_ops(dpll); in dpll_msg_add_temp()
201 ret = ops->temp_get(dpll, dpll_priv(dpll), &temp, extack); in dpll_msg_add_temp()
211 dpll_msg_add_clock_quality_level(struct sk_buff *msg, struct dpll_device *dpll, in dpll_msg_add_clock_quality_level() argument
214 const struct dpll_device_ops *ops = dpll_device_ops(dpll); in dpll_msg_add_clock_quality_level()
221 ret = ops->clock_quality_level_get(dpll, dpll_priv(dpll), qls, extack); in dpll_msg_add_clock_quality_level()
237 struct dpll_device *dpll = ref->dpll; in dpll_msg_add_pin_prio() local
243 ret = ops->prio_get(pin, dpll_pin_on_dpll_priv(dpll, pin), dpll, in dpll_msg_add_pin_prio()
244 dpll_priv(dpll), &prio, extack); in dpll_msg_add_pin_prio()
259 struct dpll_device *dpll = ref->dpll; in dpll_msg_add_pin_on_dpll_state() local
265 ret = ops->state_on_dpll_get(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_msg_add_pin_on_dpll_state()
266 dpll, dpll_priv(dpll), &state, extack); in dpll_msg_add_pin_on_dpll_state()
281 struct dpll_device *dpll = ref->dpll; in dpll_msg_add_pin_direction() local
285 ret = ops->direction_get(pin, dpll_pin_on_dpll_priv(dpll, pin), dpll, in dpll_msg_add_pin_direction()
286 dpll_priv(dpll), &direction, extack); in dpll_msg_add_pin_direction()
301 struct dpll_device *dpll = ref->dpll; in dpll_msg_add_pin_phase_adjust() local
307 ret = ops->phase_adjust_get(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_msg_add_pin_phase_adjust()
308 dpll, dpll_priv(dpll), in dpll_msg_add_pin_phase_adjust()
324 struct dpll_device *dpll = ref->dpll; in dpll_msg_add_phase_offset() local
330 ret = ops->phase_offset_get(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_msg_add_phase_offset()
331 dpll, dpll_priv(dpll), &phase_offset, in dpll_msg_add_phase_offset()
347 struct dpll_device *dpll = ref->dpll; in dpll_msg_add_ffo() local
353 ret = ops->ffo_get(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_msg_add_ffo()
354 dpll, dpll_priv(dpll), &ffo, extack); in dpll_msg_add_ffo()
368 struct dpll_device *dpll = ref->dpll; in dpll_msg_add_pin_freq() local
375 ret = ops->frequency_get(pin, dpll_pin_on_dpll_priv(dpll, pin), dpll, in dpll_msg_add_pin_freq()
376 dpll_priv(dpll), &freq, extack); in dpll_msg_add_pin_freq()
409 struct dpll_device *dpll = ref->dpll; in dpll_msg_add_pin_esync() local
416 ret = ops->esync_get(pin, dpll_pin_on_dpll_priv(dpll, pin), dpll, in dpll_msg_add_pin_esync()
417 dpll_priv(dpll), &esync, extack); in dpll_msg_add_pin_esync()
455 struct dpll_device *dpll = ref->dpll; in dpll_msg_add_pin_ref_sync() local
463 pin_priv = dpll_pin_on_dpll_priv(dpll, pin); in dpll_msg_add_pin_ref_sync()
467 ref_sync_pin_priv = dpll_pin_on_dpll_priv(dpll, ref_sync_pin); in dpll_msg_add_pin_ref_sync()
518 parent_priv = dpll_pin_on_dpll_priv(dpll_ref->dpll, ppin); in dpll_msg_add_pin_parents()
557 ret = dpll_msg_add_dev_parent_handle(msg, ref->dpll->id); in dpll_msg_add_pin_dplls()
647 dpll_device_get_one(struct dpll_device *dpll, struct sk_buff *msg, in dpll_device_get_one() argument
652 ret = dpll_msg_add_dev_handle(msg, dpll); in dpll_device_get_one()
655 if (nla_put_string(msg, DPLL_A_MODULE_NAME, module_name(dpll->module))) in dpll_device_get_one()
657 if (nla_put_64bit(msg, DPLL_A_CLOCK_ID, sizeof(dpll->clock_id), in dpll_device_get_one()
658 &dpll->clock_id, DPLL_A_PAD)) in dpll_device_get_one()
660 ret = dpll_msg_add_temp(msg, dpll, extack); in dpll_device_get_one()
663 ret = dpll_msg_add_lock_status(msg, dpll, extack); in dpll_device_get_one()
666 ret = dpll_msg_add_clock_quality_level(msg, dpll, extack); in dpll_device_get_one()
669 ret = dpll_msg_add_mode(msg, dpll, extack); in dpll_device_get_one()
672 ret = dpll_msg_add_mode_supported(msg, dpll, extack); in dpll_device_get_one()
675 if (nla_put_u32(msg, DPLL_A_TYPE, dpll->type)) in dpll_device_get_one()
677 ret = dpll_msg_add_phase_offset_monitor(msg, dpll, extack); in dpll_device_get_one()
685 dpll_device_event_send(enum dpll_cmd event, struct dpll_device *dpll) in dpll_device_event_send() argument
691 if (WARN_ON(!xa_get_mark(&dpll_device_xa, dpll->id, DPLL_REGISTERED))) in dpll_device_event_send()
699 ret = dpll_device_get_one(dpll, msg, NULL); in dpll_device_event_send()
715 int dpll_device_create_ntf(struct dpll_device *dpll) in dpll_device_create_ntf() argument
717 return dpll_device_event_send(DPLL_CMD_DEVICE_CREATE_NTF, dpll); in dpll_device_create_ntf()
720 int dpll_device_delete_ntf(struct dpll_device *dpll) in dpll_device_delete_ntf() argument
722 return dpll_device_event_send(DPLL_CMD_DEVICE_DELETE_NTF, dpll); in dpll_device_delete_ntf()
726 __dpll_device_change_ntf(struct dpll_device *dpll) in __dpll_device_change_ntf() argument
728 return dpll_device_event_send(DPLL_CMD_DEVICE_CHANGE_NTF, dpll); in __dpll_device_change_ntf()
738 int dpll_device_change_ntf(struct dpll_device *dpll) in dpll_device_change_ntf() argument
743 ret = __dpll_device_change_ntf(dpll); in dpll_device_change_ntf()
818 dpll_phase_offset_monitor_set(struct dpll_device *dpll, struct nlattr *a, in dpll_phase_offset_monitor_set() argument
821 const struct dpll_device_ops *ops = dpll_device_ops(dpll); in dpll_phase_offset_monitor_set()
829 ret = ops->phase_offset_monitor_get(dpll, dpll_priv(dpll), &old_state, in dpll_phase_offset_monitor_set()
838 return ops->phase_offset_monitor_set(dpll, dpll_priv(dpll), state, in dpll_phase_offset_monitor_set()
849 struct dpll_device *dpll; in dpll_pin_freq_set() local
867 dpll = ref->dpll; in dpll_pin_freq_set()
868 ret = ops->frequency_get(pin, dpll_pin_on_dpll_priv(dpll, pin), dpll, in dpll_pin_freq_set()
869 dpll_priv(dpll), &old_freq, extack); in dpll_pin_freq_set()
879 dpll = ref->dpll; in dpll_pin_freq_set()
880 ret = ops->frequency_set(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_freq_set()
881 dpll, dpll_priv(dpll), freq, extack); in dpll_pin_freq_set()
885 dpll->id); in dpll_pin_freq_set()
898 dpll = ref->dpll; in dpll_pin_freq_set()
899 if (ops->frequency_set(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_freq_set()
900 dpll, dpll_priv(dpll), old_freq, extack)) in dpll_pin_freq_set()
914 struct dpll_device *dpll; in dpll_pin_esync_set() local
929 dpll = ref->dpll; in dpll_pin_esync_set()
930 ret = ops->esync_get(pin, dpll_pin_on_dpll_priv(dpll, pin), dpll, in dpll_pin_esync_set()
931 dpll_priv(dpll), &esync, extack); in dpll_pin_esync_set()
951 dpll = ref->dpll; in dpll_pin_esync_set()
952 pin_dpll_priv = dpll_pin_on_dpll_priv(dpll, pin); in dpll_pin_esync_set()
953 ret = ops->esync_set(pin, pin_dpll_priv, dpll, dpll_priv(dpll), in dpll_pin_esync_set()
959 dpll->id); in dpll_pin_esync_set()
974 dpll = ref->dpll; in dpll_pin_esync_set()
975 pin_dpll_priv = dpll_pin_on_dpll_priv(dpll, pin); in dpll_pin_esync_set()
976 if (ops->esync_set(pin, pin_dpll_priv, dpll, dpll_priv(dpll), in dpll_pin_esync_set()
994 struct dpll_device *dpll; in dpll_pin_ref_sync_state_set() local
1015 dpll = ref->dpll; in dpll_pin_ref_sync_state_set()
1016 ret = ops->ref_sync_get(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_ref_sync_state_set()
1018 dpll_pin_on_dpll_priv(dpll, ref_sync_pin), in dpll_pin_ref_sync_state_set()
1028 dpll = ref->dpll; in dpll_pin_ref_sync_state_set()
1029 ret = ops->ref_sync_set(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_ref_sync_state_set()
1031 dpll_pin_on_dpll_priv(dpll, in dpll_pin_ref_sync_state_set()
1037 dpll->id); in dpll_pin_ref_sync_state_set()
1050 dpll = ref->dpll; in dpll_pin_ref_sync_state_set()
1051 if (ops->ref_sync_set(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_ref_sync_state_set()
1053 dpll_pin_on_dpll_priv(dpll, ref_sync_pin), in dpll_pin_ref_sync_state_set()
1114 parent_priv = dpll_pin_on_dpll_priv(dpll_ref->dpll, parent); in dpll_pin_on_pin_state_set()
1126 dpll_pin_state_set(struct dpll_device *dpll, struct dpll_pin *pin, in dpll_pin_state_set() argument
1139 ref = xa_load(&pin->dpll_refs, dpll->id); in dpll_pin_state_set()
1144 ret = ops->state_on_dpll_set(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_state_set()
1145 dpll, dpll_priv(dpll), state, extack); in dpll_pin_state_set()
1154 dpll_pin_prio_set(struct dpll_device *dpll, struct dpll_pin *pin, in dpll_pin_prio_set() argument
1166 ref = xa_load(&pin->dpll_refs, dpll->id); in dpll_pin_prio_set()
1171 ret = ops->prio_set(pin, dpll_pin_on_dpll_priv(dpll, pin), dpll, in dpll_pin_prio_set()
1172 dpll_priv(dpll), prio, extack); in dpll_pin_prio_set()
1181 dpll_pin_direction_set(struct dpll_pin *pin, struct dpll_device *dpll, in dpll_pin_direction_set() argument
1194 ref = xa_load(&pin->dpll_refs, dpll->id); in dpll_pin_direction_set()
1199 ret = ops->direction_set(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_direction_set()
1200 dpll, dpll_priv(dpll), direction, extack); in dpll_pin_direction_set()
1215 struct dpll_device *dpll; in dpll_pin_phase_adj_set() local
1236 dpll = ref->dpll; in dpll_pin_phase_adj_set()
1237 ret = ops->phase_adjust_get(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_phase_adj_set()
1238 dpll, dpll_priv(dpll), &old_phase_adj, in dpll_pin_phase_adj_set()
1249 dpll = ref->dpll; in dpll_pin_phase_adj_set()
1251 dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_phase_adj_set()
1252 dpll, dpll_priv(dpll), phase_adj, in dpll_pin_phase_adj_set()
1258 dpll->id); in dpll_pin_phase_adj_set()
1271 dpll = ref->dpll; in dpll_pin_phase_adj_set()
1272 if (ops->phase_adjust_set(pin, dpll_pin_on_dpll_priv(dpll, pin), in dpll_pin_phase_adj_set()
1273 dpll, dpll_priv(dpll), old_phase_adj, in dpll_pin_phase_adj_set()
1288 struct dpll_device *dpll; in dpll_pin_parent_device_set() local
1299 dpll = xa_load(&dpll_device_xa, pdpll_idx); in dpll_pin_parent_device_set()
1300 if (!dpll) { in dpll_pin_parent_device_set()
1304 ref = xa_load(&pin->dpll_refs, dpll->id); in dpll_pin_parent_device_set()
1311 ret = dpll_pin_state_set(dpll, pin, state, extack); in dpll_pin_parent_device_set()
1317 ret = dpll_pin_prio_set(dpll, pin, prio, extack); in dpll_pin_parent_device_set()
1323 ret = dpll_pin_direction_set(pin, dpll, direction, extack); in dpll_pin_parent_device_set()
1613 struct dpll_device *dpll_match = NULL, *dpll; in dpll_device_find() local
1617 xa_for_each_marked(&dpll_device_xa, i, dpll, DPLL_REGISTERED) { in dpll_device_find()
1618 cid_match = clock_id ? dpll->clock_id == clock_id : true; in dpll_device_find()
1619 mod_match = mod_name_attr ? (module_name(dpll->module) ? in dpll_device_find()
1621 module_name(dpll->module)) : false) : true; in dpll_device_find()
1622 type_match = type ? dpll->type == type : true; in dpll_device_find()
1628 dpll_match = dpll; in dpll_device_find()
1681 struct dpll_device *dpll; in dpll_nl_device_id_get_doit() local
1696 dpll = dpll_device_find_from_nlattr(info); in dpll_nl_device_id_get_doit()
1697 if (!IS_ERR(dpll)) { in dpll_nl_device_id_get_doit()
1698 ret = dpll_msg_add_dev_handle(msg, dpll); in dpll_nl_device_id_get_doit()
1711 struct dpll_device *dpll = info->user_ptr[0]; in dpll_nl_device_get_doit() local
1726 ret = dpll_device_get_one(dpll, msg, info->extack); in dpll_nl_device_get_doit()
1737 dpll_set_from_nlattr(struct dpll_device *dpll, struct genl_info *info) in dpll_set_from_nlattr() argument
1744 ret = dpll_phase_offset_monitor_set(dpll, a, info->extack); in dpll_set_from_nlattr()
1754 struct dpll_device *dpll = info->user_ptr[0]; in dpll_nl_device_set_doit() local
1756 return dpll_set_from_nlattr(dpll, info); in dpll_nl_device_set_doit()
1762 struct dpll_device *dpll; in dpll_nl_device_get_dumpit() local
1768 xa_for_each_marked_start(&dpll_device_xa, i, dpll, DPLL_REGISTERED, in dpll_nl_device_get_dumpit()
1777 ret = dpll_device_get_one(dpll, skb, cb->extack); in dpll_nl_device_get_dumpit()