Lines Matching refs:ph

191 static int scmi_perf_attributes_get(const struct scmi_protocol_handle *ph,  in scmi_perf_attributes_get()  argument
198 ret = ph->xops->xfer_get_init(ph, PROTOCOL_ATTRIBUTES, 0, in scmi_perf_attributes_get()
205 ret = ph->xops->do_xfer(ph, t); in scmi_perf_attributes_get()
222 ph->xops->xfer_put(ph, t); in scmi_perf_attributes_get()
238 scmi_perf_domain_attributes_get(const struct scmi_protocol_handle *ph, in scmi_perf_domain_attributes_get() argument
247 ret = ph->xops->xfer_get_init(ph, PERF_DOMAIN_ATTRIBUTES, in scmi_perf_domain_attributes_get()
255 ret = ph->xops->do_xfer(ph, t); in scmi_perf_domain_attributes_get()
282 ph->xops->xfer_put(ph, t); in scmi_perf_domain_attributes_get()
290 ph->hops->extended_name_get(ph, PERF_DOMAIN_NAME_GET, in scmi_perf_domain_attributes_get()
370 iter_perf_levels_process_response(const struct scmi_protocol_handle *ph, in iter_perf_levels_process_response() argument
385 dev_dbg(ph->dev, "Level %d Power %d Latency %dus Ifreq %d Index %d\n", in iter_perf_levels_process_response()
393 scmi_perf_describe_levels_get(const struct scmi_protocol_handle *ph, in scmi_perf_describe_levels_get() argument
408 iter = ph->hops->iter_response_init(ph, &ops, MAX_OPPS, in scmi_perf_describe_levels_get()
415 ret = ph->hops->iter_response_run(iter); in scmi_perf_describe_levels_get()
426 static int scmi_perf_msg_limits_set(const struct scmi_protocol_handle *ph, in scmi_perf_msg_limits_set() argument
433 ret = ph->xops->xfer_get_init(ph, PERF_LIMITS_SET, in scmi_perf_msg_limits_set()
443 ret = ph->xops->do_xfer(ph, t); in scmi_perf_msg_limits_set()
445 ph->xops->xfer_put(ph, t); in scmi_perf_msg_limits_set()
450 scmi_perf_domain_lookup(const struct scmi_protocol_handle *ph, u32 domain) in scmi_perf_domain_lookup() argument
452 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_domain_lookup()
460 static int __scmi_perf_limits_set(const struct scmi_protocol_handle *ph, in __scmi_perf_limits_set() argument
471 ph->hops->fastchannel_db_ring(fci->set_db); in __scmi_perf_limits_set()
475 return scmi_perf_msg_limits_set(ph, dom->id, max_perf, min_perf); in __scmi_perf_limits_set()
478 static int scmi_perf_limits_set(const struct scmi_protocol_handle *ph, in scmi_perf_limits_set() argument
481 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_limits_set()
484 dom = scmi_perf_domain_lookup(ph, domain); in scmi_perf_limits_set()
511 return __scmi_perf_limits_set(ph, dom, max_perf, min_perf); in scmi_perf_limits_set()
514 static int scmi_perf_msg_limits_get(const struct scmi_protocol_handle *ph, in scmi_perf_msg_limits_get() argument
521 ret = ph->xops->xfer_get_init(ph, PERF_LIMITS_GET, in scmi_perf_msg_limits_get()
528 ret = ph->xops->do_xfer(ph, t); in scmi_perf_msg_limits_get()
536 ph->xops->xfer_put(ph, t); in scmi_perf_msg_limits_get()
540 static int __scmi_perf_limits_get(const struct scmi_protocol_handle *ph, in __scmi_perf_limits_get() argument
554 return scmi_perf_msg_limits_get(ph, dom->id, max_perf, min_perf); in __scmi_perf_limits_get()
557 static int scmi_perf_limits_get(const struct scmi_protocol_handle *ph, in scmi_perf_limits_get() argument
563 dom = scmi_perf_domain_lookup(ph, domain); in scmi_perf_limits_get()
567 ret = __scmi_perf_limits_get(ph, dom, max_perf, min_perf); in scmi_perf_limits_get()
590 static int scmi_perf_msg_level_set(const struct scmi_protocol_handle *ph, in scmi_perf_msg_level_set() argument
597 ret = ph->xops->xfer_get_init(ph, PERF_LEVEL_SET, sizeof(*lvl), 0, &t); in scmi_perf_msg_level_set()
606 ret = ph->xops->do_xfer(ph, t); in scmi_perf_msg_level_set()
608 ph->xops->xfer_put(ph, t); in scmi_perf_msg_level_set()
612 static int __scmi_perf_level_set(const struct scmi_protocol_handle *ph, in __scmi_perf_level_set() argument
622 ph->hops->fastchannel_db_ring(fci->set_db); in __scmi_perf_level_set()
626 return scmi_perf_msg_level_set(ph, dom->id, level, poll); in __scmi_perf_level_set()
629 static int scmi_perf_level_set(const struct scmi_protocol_handle *ph, in scmi_perf_level_set() argument
634 dom = scmi_perf_domain_lookup(ph, domain); in scmi_perf_level_set()
648 return __scmi_perf_level_set(ph, dom, level, poll); in scmi_perf_level_set()
651 static int scmi_perf_msg_level_get(const struct scmi_protocol_handle *ph, in scmi_perf_msg_level_get() argument
657 ret = ph->xops->xfer_get_init(ph, PERF_LEVEL_GET, in scmi_perf_msg_level_get()
665 ret = ph->xops->do_xfer(ph, t); in scmi_perf_msg_level_get()
669 ph->xops->xfer_put(ph, t); in scmi_perf_msg_level_get()
673 static int __scmi_perf_level_get(const struct scmi_protocol_handle *ph, in __scmi_perf_level_get() argument
684 return scmi_perf_msg_level_get(ph, dom->id, level, poll); in __scmi_perf_level_get()
687 static int scmi_perf_level_get(const struct scmi_protocol_handle *ph, in scmi_perf_level_get() argument
693 dom = scmi_perf_domain_lookup(ph, domain); in scmi_perf_level_get()
697 ret = __scmi_perf_level_get(ph, dom, level, poll); in scmi_perf_level_get()
714 static int scmi_perf_level_limits_notify(const struct scmi_protocol_handle *ph, in scmi_perf_level_limits_notify() argument
722 ret = ph->xops->xfer_get_init(ph, message_id, sizeof(*notify), 0, &t); in scmi_perf_level_limits_notify()
730 ret = ph->xops->do_xfer(ph, t); in scmi_perf_level_limits_notify()
732 ph->xops->xfer_put(ph, t); in scmi_perf_level_limits_notify()
736 static void scmi_perf_domain_init_fc(const struct scmi_protocol_handle *ph, in scmi_perf_domain_init_fc() argument
741 fc = devm_kcalloc(ph->dev, PERF_FC_MAX, sizeof(*fc), GFP_KERNEL); in scmi_perf_domain_init_fc()
745 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
750 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
754 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
759 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
778 static int scmi_dvfs_device_opps_add(const struct scmi_protocol_handle *ph, in scmi_dvfs_device_opps_add() argument
790 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_device_opps_add()
821 scmi_dvfs_transition_latency_get(const struct scmi_protocol_handle *ph, in scmi_dvfs_transition_latency_get() argument
831 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_transition_latency_get()
839 static int scmi_dvfs_freq_set(const struct scmi_protocol_handle *ph, u32 domain, in scmi_dvfs_freq_set() argument
845 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_freq_set()
861 return __scmi_perf_level_set(ph, dom, level, poll); in scmi_dvfs_freq_set()
864 static int scmi_dvfs_freq_get(const struct scmi_protocol_handle *ph, u32 domain, in scmi_dvfs_freq_get() argument
871 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_freq_get()
875 ret = __scmi_perf_level_get(ph, dom, &level, poll); in scmi_dvfs_freq_get()
894 static int scmi_dvfs_est_power_get(const struct scmi_protocol_handle *ph, in scmi_dvfs_est_power_get() argument
903 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_est_power_get()
925 static bool scmi_fast_switch_possible(const struct scmi_protocol_handle *ph, in scmi_fast_switch_possible() argument
935 dom = scmi_perf_domain_lookup(ph, domain); in scmi_fast_switch_possible()
943 scmi_power_scale_get(const struct scmi_protocol_handle *ph) in scmi_power_scale_get() argument
945 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_power_scale_get()
965 static int scmi_perf_set_notify_enabled(const struct scmi_protocol_handle *ph, in scmi_perf_set_notify_enabled() argument
974 ret = scmi_perf_level_limits_notify(ph, src_id, cmd_id, enable); in scmi_perf_set_notify_enabled()
982 static void *scmi_perf_fill_custom_report(const struct scmi_protocol_handle *ph, in scmi_perf_fill_custom_report() argument
1030 static int scmi_perf_get_num_sources(const struct scmi_protocol_handle *ph) in scmi_perf_get_num_sources() argument
1032 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_get_num_sources()
1066 static int scmi_perf_protocol_init(const struct scmi_protocol_handle *ph) in scmi_perf_protocol_init() argument
1072 ret = ph->xops->version_get(ph, &version); in scmi_perf_protocol_init()
1076 dev_dbg(ph->dev, "Performance Version %d.%d\n", in scmi_perf_protocol_init()
1079 pinfo = devm_kzalloc(ph->dev, sizeof(*pinfo), GFP_KERNEL); in scmi_perf_protocol_init()
1085 ret = scmi_perf_attributes_get(ph, pinfo); in scmi_perf_protocol_init()
1089 pinfo->dom_info = devm_kcalloc(ph->dev, pinfo->num_domains, in scmi_perf_protocol_init()
1098 scmi_perf_domain_attributes_get(ph, dom, version); in scmi_perf_protocol_init()
1099 scmi_perf_describe_levels_get(ph, dom, version); in scmi_perf_protocol_init()
1102 scmi_perf_domain_init_fc(ph, dom->id, &dom->fc_info); in scmi_perf_protocol_init()
1105 ret = devm_add_action_or_reset(ph->dev, scmi_perf_xa_destroy, pinfo); in scmi_perf_protocol_init()
1109 return ph->set_priv(ph, pinfo); in scmi_perf_protocol_init()