Lines Matching refs:ph
196 static int scmi_perf_attributes_get(const struct scmi_protocol_handle *ph, in scmi_perf_attributes_get() argument
203 ret = ph->xops->xfer_get_init(ph, PROTOCOL_ATTRIBUTES, 0, in scmi_perf_attributes_get()
210 ret = ph->xops->do_xfer(ph, t); in scmi_perf_attributes_get()
227 ph->xops->xfer_put(ph, t); in scmi_perf_attributes_get()
230 if (!ph->hops->protocol_msg_check(ph, PERF_NOTIFY_LEVEL, NULL)) in scmi_perf_attributes_get()
233 if (!ph->hops->protocol_msg_check(ph, PERF_NOTIFY_LIMITS, NULL)) in scmi_perf_attributes_get()
252 scmi_perf_domain_attributes_get(const struct scmi_protocol_handle *ph, in scmi_perf_domain_attributes_get() argument
262 ret = ph->xops->xfer_get_init(ph, PERF_DOMAIN_ATTRIBUTES, in scmi_perf_domain_attributes_get()
270 ret = ph->xops->do_xfer(ph, t); in scmi_perf_domain_attributes_get()
307 dev_warn(ph->dev, in scmi_perf_domain_attributes_get()
312 dev_warn(ph->dev, in scmi_perf_domain_attributes_get()
320 ph->xops->xfer_put(ph, t); in scmi_perf_domain_attributes_get()
328 ph->hops->extended_name_get(ph, PERF_DOMAIN_NAME_GET, in scmi_perf_domain_attributes_get()
442 iter_perf_levels_process_response(const struct scmi_protocol_handle *ph, in iter_perf_levels_process_response() argument
452 ret = process_response_opp(ph->dev, p->perf_dom, opp, in iter_perf_levels_process_response()
455 ret = process_response_opp_v4(ph->dev, p->perf_dom, opp, in iter_perf_levels_process_response()
464 dev_dbg(ph->dev, "Level %d Power %d Latency %dus Ifreq %d Index %d\n", in iter_perf_levels_process_response()
472 scmi_perf_describe_levels_get(const struct scmi_protocol_handle *ph, in scmi_perf_describe_levels_get() argument
487 iter = ph->hops->iter_response_init(ph, &ops, MAX_OPPS, in scmi_perf_describe_levels_get()
494 ret = ph->hops->iter_response_run(iter); in scmi_perf_describe_levels_get()
505 static int scmi_perf_num_domains_get(const struct scmi_protocol_handle *ph) in scmi_perf_num_domains_get() argument
507 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_num_domains_get()
513 scmi_perf_domain_lookup(const struct scmi_protocol_handle *ph, u32 domain) in scmi_perf_domain_lookup() argument
515 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_domain_lookup()
524 scmi_perf_info_get(const struct scmi_protocol_handle *ph, u32 domain) in scmi_perf_info_get() argument
528 dom = scmi_perf_domain_lookup(ph, domain); in scmi_perf_info_get()
535 static int scmi_perf_msg_limits_set(const struct scmi_protocol_handle *ph, in scmi_perf_msg_limits_set() argument
542 ret = ph->xops->xfer_get_init(ph, PERF_LIMITS_SET, in scmi_perf_msg_limits_set()
552 ret = ph->xops->do_xfer(ph, t); in scmi_perf_msg_limits_set()
554 ph->xops->xfer_put(ph, t); in scmi_perf_msg_limits_set()
558 static int __scmi_perf_limits_set(const struct scmi_protocol_handle *ph, in __scmi_perf_limits_set() argument
569 ph->hops->fastchannel_db_ring(fci->set_db); in __scmi_perf_limits_set()
573 return scmi_perf_msg_limits_set(ph, dom->id, max_perf, min_perf); in __scmi_perf_limits_set()
576 static int scmi_perf_limits_set(const struct scmi_protocol_handle *ph, in scmi_perf_limits_set() argument
579 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_limits_set()
582 dom = scmi_perf_domain_lookup(ph, domain); in scmi_perf_limits_set()
612 return __scmi_perf_limits_set(ph, dom, max_perf, min_perf); in scmi_perf_limits_set()
615 static int scmi_perf_msg_limits_get(const struct scmi_protocol_handle *ph, in scmi_perf_msg_limits_get() argument
622 ret = ph->xops->xfer_get_init(ph, PERF_LIMITS_GET, in scmi_perf_msg_limits_get()
629 ret = ph->xops->do_xfer(ph, t); in scmi_perf_msg_limits_get()
637 ph->xops->xfer_put(ph, t); in scmi_perf_msg_limits_get()
641 static int __scmi_perf_limits_get(const struct scmi_protocol_handle *ph, in __scmi_perf_limits_get() argument
655 return scmi_perf_msg_limits_get(ph, dom->id, max_perf, min_perf); in __scmi_perf_limits_get()
658 static int scmi_perf_limits_get(const struct scmi_protocol_handle *ph, in scmi_perf_limits_get() argument
664 dom = scmi_perf_domain_lookup(ph, domain); in scmi_perf_limits_get()
668 ret = __scmi_perf_limits_get(ph, dom, max_perf, min_perf); in scmi_perf_limits_get()
691 static int scmi_perf_msg_level_set(const struct scmi_protocol_handle *ph, in scmi_perf_msg_level_set() argument
698 ret = ph->xops->xfer_get_init(ph, PERF_LEVEL_SET, sizeof(*lvl), 0, &t); in scmi_perf_msg_level_set()
707 ret = ph->xops->do_xfer(ph, t); in scmi_perf_msg_level_set()
709 ph->xops->xfer_put(ph, t); in scmi_perf_msg_level_set()
713 static int __scmi_perf_level_set(const struct scmi_protocol_handle *ph, in __scmi_perf_level_set() argument
723 ph->hops->fastchannel_db_ring(fci->set_db); in __scmi_perf_level_set()
727 return scmi_perf_msg_level_set(ph, dom->id, level, poll); in __scmi_perf_level_set()
730 static int scmi_perf_level_set(const struct scmi_protocol_handle *ph, in scmi_perf_level_set() argument
735 dom = scmi_perf_domain_lookup(ph, domain); in scmi_perf_level_set()
752 return __scmi_perf_level_set(ph, dom, level, poll); in scmi_perf_level_set()
755 static int scmi_perf_msg_level_get(const struct scmi_protocol_handle *ph, in scmi_perf_msg_level_get() argument
761 ret = ph->xops->xfer_get_init(ph, PERF_LEVEL_GET, in scmi_perf_msg_level_get()
769 ret = ph->xops->do_xfer(ph, t); in scmi_perf_msg_level_get()
773 ph->xops->xfer_put(ph, t); in scmi_perf_msg_level_get()
777 static int __scmi_perf_level_get(const struct scmi_protocol_handle *ph, in __scmi_perf_level_get() argument
788 return scmi_perf_msg_level_get(ph, dom->id, level, poll); in __scmi_perf_level_get()
791 static int scmi_perf_level_get(const struct scmi_protocol_handle *ph, in scmi_perf_level_get() argument
797 dom = scmi_perf_domain_lookup(ph, domain); in scmi_perf_level_get()
801 ret = __scmi_perf_level_get(ph, dom, level, poll); in scmi_perf_level_get()
818 static int scmi_perf_level_limits_notify(const struct scmi_protocol_handle *ph, in scmi_perf_level_limits_notify() argument
826 ret = ph->xops->xfer_get_init(ph, message_id, sizeof(*notify), 0, &t); in scmi_perf_level_limits_notify()
834 ret = ph->xops->do_xfer(ph, t); in scmi_perf_level_limits_notify()
836 ph->xops->xfer_put(ph, t); in scmi_perf_level_limits_notify()
840 static void scmi_perf_domain_init_fc(const struct scmi_protocol_handle *ph, in scmi_perf_domain_init_fc() argument
845 fc = devm_kcalloc(ph->dev, PERF_FC_MAX, sizeof(*fc), GFP_KERNEL); in scmi_perf_domain_init_fc()
849 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
854 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
860 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
867 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
876 static int scmi_dvfs_device_opps_add(const struct scmi_protocol_handle *ph, in scmi_dvfs_device_opps_add() argument
884 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_device_opps_add()
915 scmi_dvfs_transition_latency_get(const struct scmi_protocol_handle *ph, in scmi_dvfs_transition_latency_get() argument
920 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_transition_latency_get()
929 scmi_dvfs_rate_limit_get(const struct scmi_protocol_handle *ph, in scmi_dvfs_rate_limit_get() argument
937 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_rate_limit_get()
945 static int scmi_dvfs_freq_set(const struct scmi_protocol_handle *ph, u32 domain, in scmi_dvfs_freq_set() argument
951 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_freq_set()
968 return __scmi_perf_level_set(ph, dom, level, poll); in scmi_dvfs_freq_set()
971 static int scmi_dvfs_freq_get(const struct scmi_protocol_handle *ph, u32 domain, in scmi_dvfs_freq_get() argument
978 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_freq_get()
982 ret = __scmi_perf_level_get(ph, dom, &level, poll); in scmi_dvfs_freq_get()
1001 static int scmi_dvfs_est_power_get(const struct scmi_protocol_handle *ph, in scmi_dvfs_est_power_get() argument
1010 dom = scmi_perf_domain_lookup(ph, domain); in scmi_dvfs_est_power_get()
1032 static bool scmi_fast_switch_possible(const struct scmi_protocol_handle *ph, in scmi_fast_switch_possible() argument
1037 dom = scmi_perf_domain_lookup(ph, domain); in scmi_fast_switch_possible()
1044 static int scmi_fast_switch_rate_limit(const struct scmi_protocol_handle *ph, in scmi_fast_switch_rate_limit() argument
1052 dom = scmi_perf_domain_lookup(ph, domain); in scmi_fast_switch_rate_limit()
1064 scmi_power_scale_get(const struct scmi_protocol_handle *ph) in scmi_power_scale_get() argument
1066 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_power_scale_get()
1089 static bool scmi_perf_notify_supported(const struct scmi_protocol_handle *ph, in scmi_perf_notify_supported() argument
1098 dom = scmi_perf_domain_lookup(ph, src_id); in scmi_perf_notify_supported()
1110 static int scmi_perf_set_notify_enabled(const struct scmi_protocol_handle *ph, in scmi_perf_set_notify_enabled() argument
1119 ret = scmi_perf_level_limits_notify(ph, src_id, cmd_id, enable); in scmi_perf_set_notify_enabled()
1153 static void *scmi_perf_fill_custom_report(const struct scmi_protocol_handle *ph, in scmi_perf_fill_custom_report() argument
1178 dom = scmi_perf_domain_lookup(ph, r->domain_id); in scmi_perf_fill_custom_report()
1217 dom = scmi_perf_domain_lookup(ph, r->domain_id); in scmi_perf_fill_custom_report()
1244 static int scmi_perf_get_num_sources(const struct scmi_protocol_handle *ph) in scmi_perf_get_num_sources() argument
1246 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_get_num_sources()
1281 static int scmi_perf_protocol_init(const struct scmi_protocol_handle *ph) in scmi_perf_protocol_init() argument
1287 ret = ph->xops->version_get(ph, &version); in scmi_perf_protocol_init()
1291 dev_dbg(ph->dev, "Performance Version %d.%d\n", in scmi_perf_protocol_init()
1294 pinfo = devm_kzalloc(ph->dev, sizeof(*pinfo), GFP_KERNEL); in scmi_perf_protocol_init()
1300 ret = scmi_perf_attributes_get(ph, pinfo); in scmi_perf_protocol_init()
1304 pinfo->dom_info = devm_kcalloc(ph->dev, pinfo->num_domains, in scmi_perf_protocol_init()
1313 scmi_perf_domain_attributes_get(ph, dom, pinfo->notify_lim_cmd, in scmi_perf_protocol_init()
1315 scmi_perf_describe_levels_get(ph, dom, version); in scmi_perf_protocol_init()
1318 scmi_perf_domain_init_fc(ph, dom); in scmi_perf_protocol_init()
1321 ret = devm_add_action_or_reset(ph->dev, scmi_perf_xa_destroy, pinfo); in scmi_perf_protocol_init()
1325 return ph->set_priv(ph, pinfo, version); in scmi_perf_protocol_init()