Lines Matching refs:opp
132 } opp[]; member
145 } opp[]; member
161 struct scmi_opp opp[MAX_OPPS]; member
378 struct scmi_opp *opp, unsigned int loop_idx, in process_response_opp() argument
383 opp->perf = le32_to_cpu(r->opp[loop_idx].perf_val); in process_response_opp()
384 opp->power = le32_to_cpu(r->opp[loop_idx].power); in process_response_opp()
385 opp->trans_latency_us = in process_response_opp()
386 le16_to_cpu(r->opp[loop_idx].transition_latency_us); in process_response_opp()
388 ret = xa_insert(&dom->opps_by_lvl, opp->perf, opp, GFP_KERNEL); in process_response_opp()
391 opp->perf, dom->info.name, ret); in process_response_opp()
400 struct scmi_opp *opp, unsigned int loop_idx, in process_response_opp_v4() argument
405 opp->perf = le32_to_cpu(r->opp[loop_idx].perf_val); in process_response_opp_v4()
406 opp->power = le32_to_cpu(r->opp[loop_idx].power); in process_response_opp_v4()
407 opp->trans_latency_us = in process_response_opp_v4()
408 le16_to_cpu(r->opp[loop_idx].transition_latency_us); in process_response_opp_v4()
410 ret = xa_insert(&dom->opps_by_lvl, opp->perf, opp, GFP_KERNEL); in process_response_opp_v4()
413 opp->perf, dom->info.name, ret); in process_response_opp_v4()
418 opp->indicative_freq = le32_to_cpu(r->opp[loop_idx].indicative_freq); in process_response_opp_v4()
420 opp->level_index = le32_to_cpu(r->opp[loop_idx].level_index); in process_response_opp_v4()
422 ret = xa_insert(&dom->opps_by_idx, opp->level_index, opp, in process_response_opp_v4()
427 opp->level_index, dom->info.name, ret); in process_response_opp_v4()
430 xa_erase(&dom->opps_by_lvl, opp->perf); in process_response_opp_v4()
435 hash_add(dom->opps_by_freq, &opp->hash, opp->indicative_freq); in process_response_opp_v4()
447 struct scmi_opp *opp; in iter_perf_levels_process_response() local
450 opp = &p->perf_dom->opp[p->perf_dom->opp_count]; in iter_perf_levels_process_response()
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()
465 opp->perf, opp->power, opp->trans_latency_us, in iter_perf_levels_process_response()
466 opp->indicative_freq, opp->level_index); in iter_perf_levels_process_response()
499 sort(perf_dom->opp, perf_dom->opp_count, in scmi_perf_describe_levels_get()
593 struct scmi_opp *opp; in scmi_perf_limits_set() local
596 opp = xa_load(&dom->opps_by_lvl, min_perf); in scmi_perf_limits_set()
597 if (!opp) in scmi_perf_limits_set()
600 min_perf = opp->level_index; in scmi_perf_limits_set()
604 opp = xa_load(&dom->opps_by_lvl, max_perf); in scmi_perf_limits_set()
605 if (!opp) in scmi_perf_limits_set()
608 max_perf = opp->level_index; in scmi_perf_limits_set()
673 struct scmi_opp *opp; in scmi_perf_limits_get() local
675 opp = xa_load(&dom->opps_by_idx, *min_perf); in scmi_perf_limits_get()
676 if (!opp) in scmi_perf_limits_get()
679 *min_perf = opp->perf; in scmi_perf_limits_get()
681 opp = xa_load(&dom->opps_by_idx, *max_perf); in scmi_perf_limits_get()
682 if (!opp) in scmi_perf_limits_get()
685 *max_perf = opp->perf; in scmi_perf_limits_get()
743 struct scmi_opp *opp; in scmi_perf_level_set() local
745 opp = xa_load(&dom->opps_by_lvl, level); in scmi_perf_level_set()
746 if (!opp) in scmi_perf_level_set()
749 level = opp->level_index; in scmi_perf_level_set()
806 struct scmi_opp *opp; in scmi_perf_level_get() local
808 opp = xa_load(&dom->opps_by_idx, *level); in scmi_perf_level_get()
809 if (!opp) in scmi_perf_level_get()
812 *level = opp->perf; in scmi_perf_level_get()
890 freq = dom->opp[idx].perf * dom->mult_factor; in scmi_dvfs_device_opps_add()
892 freq = dom->opp[idx].indicative_freq * dom->mult_factor; in scmi_dvfs_device_opps_add()
897 data.level = dom->opp[idx].perf; in scmi_dvfs_device_opps_add()
925 return dom->opp[dom->opp_count - 1].trans_latency_us * 1000; in scmi_dvfs_transition_latency_get()
958 struct scmi_opp *opp; in scmi_dvfs_freq_set() local
960 opp = LOOKUP_BY_FREQ(dom->opps_by_freq, in scmi_dvfs_freq_set()
962 if (!opp) in scmi_dvfs_freq_set()
965 level = opp->level_index; in scmi_dvfs_freq_set()
989 struct scmi_opp *opp; in scmi_dvfs_freq_get() local
991 opp = xa_load(&dom->opps_by_idx, level); in scmi_dvfs_freq_get()
992 if (!opp) in scmi_dvfs_freq_get()
995 *freq = opp->indicative_freq * dom->mult_factor; in scmi_dvfs_freq_get()
1008 struct scmi_opp *opp; in scmi_dvfs_est_power_get() local
1014 for (opp = dom->opp, idx = 0; idx < dom->opp_count; idx++, opp++) { in scmi_dvfs_est_power_get()
1016 opp_freq = opp->perf * dom->mult_factor; in scmi_dvfs_est_power_get()
1018 opp_freq = opp->indicative_freq * dom->mult_factor; in scmi_dvfs_est_power_get()
1024 *power = opp->power; in scmi_dvfs_est_power_get()
1131 struct scmi_opp *opp; in scmi_perf_xlate_opp_to_freq() local
1137 opp = xa_load(&dom->opps_by_lvl, index); in scmi_perf_xlate_opp_to_freq()
1138 if (!opp) in scmi_perf_xlate_opp_to_freq()
1141 *freq = opp->perf * dom->mult_factor; in scmi_perf_xlate_opp_to_freq()
1143 opp = xa_load(&dom->opps_by_idx, index); in scmi_perf_xlate_opp_to_freq()
1144 if (!opp) in scmi_perf_xlate_opp_to_freq()
1147 *freq = opp->indicative_freq * dom->mult_factor; in scmi_perf_xlate_opp_to_freq()