Lines Matching refs:ph
154 static int scmi_perf_attributes_get(const struct scmi_protocol_handle *ph, in scmi_perf_attributes_get() argument
161 ret = ph->xops->xfer_get_init(ph, PROTOCOL_ATTRIBUTES, 0, in scmi_perf_attributes_get()
168 ret = ph->xops->do_xfer(ph, t); in scmi_perf_attributes_get()
185 ph->xops->xfer_put(ph, t); in scmi_perf_attributes_get()
190 scmi_perf_domain_attributes_get(const struct scmi_protocol_handle *ph, in scmi_perf_domain_attributes_get() argument
199 ret = ph->xops->xfer_get_init(ph, PERF_DOMAIN_ATTRIBUTES, in scmi_perf_domain_attributes_get()
207 ret = ph->xops->do_xfer(ph, t); in scmi_perf_domain_attributes_get()
231 ph->xops->xfer_put(ph, t); in scmi_perf_domain_attributes_get()
239 ph->hops->extended_name_get(ph, PERF_DOMAIN_NAME_GET, domain, in scmi_perf_domain_attributes_get()
281 iter_perf_levels_process_response(const struct scmi_protocol_handle *ph, in iter_perf_levels_process_response() argument
296 dev_dbg(ph->dev, "Level %d Power %d Latency %dus\n", in iter_perf_levels_process_response()
303 scmi_perf_describe_levels_get(const struct scmi_protocol_handle *ph, u32 domain, in scmi_perf_describe_levels_get() argument
318 iter = ph->hops->iter_response_init(ph, &ops, MAX_OPPS, in scmi_perf_describe_levels_get()
325 ret = ph->hops->iter_response_run(iter); in scmi_perf_describe_levels_get()
336 static int scmi_perf_mb_limits_set(const struct scmi_protocol_handle *ph, in scmi_perf_mb_limits_set() argument
343 ret = ph->xops->xfer_get_init(ph, PERF_LIMITS_SET, in scmi_perf_mb_limits_set()
353 ret = ph->xops->do_xfer(ph, t); in scmi_perf_mb_limits_set()
355 ph->xops->xfer_put(ph, t); in scmi_perf_mb_limits_set()
359 static int scmi_perf_limits_set(const struct scmi_protocol_handle *ph, in scmi_perf_limits_set() argument
362 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_limits_set()
375 ph->hops->fastchannel_db_ring(fci->set_db); in scmi_perf_limits_set()
379 return scmi_perf_mb_limits_set(ph, domain, max_perf, min_perf); in scmi_perf_limits_set()
382 static int scmi_perf_mb_limits_get(const struct scmi_protocol_handle *ph, in scmi_perf_mb_limits_get() argument
389 ret = ph->xops->xfer_get_init(ph, PERF_LIMITS_GET, in scmi_perf_mb_limits_get()
396 ret = ph->xops->do_xfer(ph, t); in scmi_perf_mb_limits_get()
404 ph->xops->xfer_put(ph, t); in scmi_perf_mb_limits_get()
408 static int scmi_perf_limits_get(const struct scmi_protocol_handle *ph, in scmi_perf_limits_get() argument
411 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_limits_get()
424 return scmi_perf_mb_limits_get(ph, domain, max_perf, min_perf); in scmi_perf_limits_get()
427 static int scmi_perf_mb_level_set(const struct scmi_protocol_handle *ph, in scmi_perf_mb_level_set() argument
434 ret = ph->xops->xfer_get_init(ph, PERF_LEVEL_SET, sizeof(*lvl), 0, &t); in scmi_perf_mb_level_set()
443 ret = ph->xops->do_xfer(ph, t); in scmi_perf_mb_level_set()
445 ph->xops->xfer_put(ph, t); in scmi_perf_mb_level_set()
449 static int scmi_perf_level_set(const struct scmi_protocol_handle *ph, in scmi_perf_level_set() argument
452 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_level_set()
461 ph->hops->fastchannel_db_ring(fci->set_db); in scmi_perf_level_set()
465 return scmi_perf_mb_level_set(ph, domain, level, poll); in scmi_perf_level_set()
468 static int scmi_perf_mb_level_get(const struct scmi_protocol_handle *ph, in scmi_perf_mb_level_get() argument
474 ret = ph->xops->xfer_get_init(ph, PERF_LEVEL_GET, in scmi_perf_mb_level_get()
482 ret = ph->xops->do_xfer(ph, t); in scmi_perf_mb_level_get()
486 ph->xops->xfer_put(ph, t); in scmi_perf_mb_level_get()
490 static int scmi_perf_level_get(const struct scmi_protocol_handle *ph, in scmi_perf_level_get() argument
493 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_level_get()
503 return scmi_perf_mb_level_get(ph, domain, level, poll); in scmi_perf_level_get()
506 static int scmi_perf_level_limits_notify(const struct scmi_protocol_handle *ph, in scmi_perf_level_limits_notify() argument
514 ret = ph->xops->xfer_get_init(ph, message_id, sizeof(*notify), 0, &t); in scmi_perf_level_limits_notify()
522 ret = ph->xops->do_xfer(ph, t); in scmi_perf_level_limits_notify()
524 ph->xops->xfer_put(ph, t); in scmi_perf_level_limits_notify()
528 static void scmi_perf_domain_init_fc(const struct scmi_protocol_handle *ph, in scmi_perf_domain_init_fc() argument
533 fc = devm_kcalloc(ph->dev, PERF_FC_MAX, sizeof(*fc), GFP_KERNEL); in scmi_perf_domain_init_fc()
537 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
542 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
546 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
551 ph->hops->fastchannel_init(ph, PERF_DESCRIBE_FASTCHANNEL, in scmi_perf_domain_init_fc()
570 static int scmi_dvfs_device_opps_add(const struct scmi_protocol_handle *ph, in scmi_dvfs_device_opps_add() argument
577 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_dvfs_device_opps_add()
603 scmi_dvfs_transition_latency_get(const struct scmi_protocol_handle *ph, in scmi_dvfs_transition_latency_get() argument
607 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_dvfs_transition_latency_get()
618 static int scmi_dvfs_freq_set(const struct scmi_protocol_handle *ph, u32 domain, in scmi_dvfs_freq_set() argument
621 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_dvfs_freq_set()
624 return scmi_perf_level_set(ph, domain, freq / dom->mult_factor, poll); in scmi_dvfs_freq_set()
627 static int scmi_dvfs_freq_get(const struct scmi_protocol_handle *ph, u32 domain, in scmi_dvfs_freq_get() argument
632 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_dvfs_freq_get()
635 ret = scmi_perf_level_get(ph, domain, &level, poll); in scmi_dvfs_freq_get()
642 static int scmi_dvfs_est_power_get(const struct scmi_protocol_handle *ph, in scmi_dvfs_est_power_get() argument
646 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_dvfs_est_power_get()
670 static bool scmi_fast_switch_possible(const struct scmi_protocol_handle *ph, in scmi_fast_switch_possible() argument
674 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_fast_switch_possible()
682 scmi_power_scale_get(const struct scmi_protocol_handle *ph) in scmi_power_scale_get() argument
684 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_power_scale_get()
704 static int scmi_perf_set_notify_enabled(const struct scmi_protocol_handle *ph, in scmi_perf_set_notify_enabled() argument
713 ret = scmi_perf_level_limits_notify(ph, src_id, cmd_id, enable); in scmi_perf_set_notify_enabled()
721 static void *scmi_perf_fill_custom_report(const struct scmi_protocol_handle *ph, in scmi_perf_fill_custom_report() argument
769 static int scmi_perf_get_num_sources(const struct scmi_protocol_handle *ph) in scmi_perf_get_num_sources() argument
771 struct scmi_perf_info *pi = ph->get_priv(ph); in scmi_perf_get_num_sources()
805 static int scmi_perf_protocol_init(const struct scmi_protocol_handle *ph) in scmi_perf_protocol_init() argument
811 ret = ph->xops->version_get(ph, &version); in scmi_perf_protocol_init()
815 dev_dbg(ph->dev, "Performance Version %d.%d\n", in scmi_perf_protocol_init()
818 pinfo = devm_kzalloc(ph->dev, sizeof(*pinfo), GFP_KERNEL); in scmi_perf_protocol_init()
822 ret = scmi_perf_attributes_get(ph, pinfo); in scmi_perf_protocol_init()
826 pinfo->dom_info = devm_kcalloc(ph->dev, pinfo->num_domains, in scmi_perf_protocol_init()
834 scmi_perf_domain_attributes_get(ph, domain, dom, version); in scmi_perf_protocol_init()
835 scmi_perf_describe_levels_get(ph, domain, dom); in scmi_perf_protocol_init()
838 scmi_perf_domain_init_fc(ph, domain, &dom->fc_info); in scmi_perf_protocol_init()
843 return ph->set_priv(ph, pinfo); in scmi_perf_protocol_init()