Commit e9090e70 authored by Ulf Hansson's avatar Ulf Hansson Committed by Sudeep Holla

firmware: arm_scmi: Extend perf protocol ops to get number of domains

Similar to other protocol ops, it's useful for an scmi module driver to get
the number of supported performance domains, hence let's make this
available by adding a new perf protocol callback. Note that, a user is
being added from subsequent changes.
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20230825112633.236607-2-ulf.hansson@linaro.orgSigned-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
parent 141b4fa0
...@@ -423,6 +423,13 @@ scmi_perf_describe_levels_get(const struct scmi_protocol_handle *ph, ...@@ -423,6 +423,13 @@ scmi_perf_describe_levels_get(const struct scmi_protocol_handle *ph,
return ret; return ret;
} }
static int scmi_perf_num_domains_get(const struct scmi_protocol_handle *ph)
{
struct scmi_perf_info *pi = ph->get_priv(ph);
return pi->num_domains;
}
static int scmi_perf_msg_limits_set(const struct scmi_protocol_handle *ph, static int scmi_perf_msg_limits_set(const struct scmi_protocol_handle *ph,
u32 domain, u32 max_perf, u32 min_perf) u32 domain, u32 max_perf, u32 min_perf)
{ {
...@@ -948,6 +955,7 @@ scmi_power_scale_get(const struct scmi_protocol_handle *ph) ...@@ -948,6 +955,7 @@ scmi_power_scale_get(const struct scmi_protocol_handle *ph)
} }
static const struct scmi_perf_proto_ops perf_proto_ops = { static const struct scmi_perf_proto_ops perf_proto_ops = {
.num_domains_get = scmi_perf_num_domains_get,
.limits_set = scmi_perf_limits_set, .limits_set = scmi_perf_limits_set,
.limits_get = scmi_perf_limits_get, .limits_get = scmi_perf_limits_get,
.level_set = scmi_perf_level_set, .level_set = scmi_perf_level_set,
......
...@@ -110,6 +110,7 @@ struct scmi_clk_proto_ops { ...@@ -110,6 +110,7 @@ struct scmi_clk_proto_ops {
* struct scmi_perf_proto_ops - represents the various operations provided * struct scmi_perf_proto_ops - represents the various operations provided
* by SCMI Performance Protocol * by SCMI Performance Protocol
* *
* @num_domains_get: gets the number of supported performance domains
* @limits_set: sets limits on the performance level of a domain * @limits_set: sets limits on the performance level of a domain
* @limits_get: gets limits on the performance level of a domain * @limits_get: gets limits on the performance level of a domain
* @level_set: sets the performance level of a domain * @level_set: sets the performance level of a domain
...@@ -129,6 +130,7 @@ struct scmi_clk_proto_ops { ...@@ -129,6 +130,7 @@ struct scmi_clk_proto_ops {
* or in some other (abstract) scale * or in some other (abstract) scale
*/ */
struct scmi_perf_proto_ops { struct scmi_perf_proto_ops {
int (*num_domains_get)(const struct scmi_protocol_handle *ph);
int (*limits_set)(const struct scmi_protocol_handle *ph, u32 domain, int (*limits_set)(const struct scmi_protocol_handle *ph, u32 domain,
u32 max_perf, u32 min_perf); u32 max_perf, u32 min_perf);
int (*limits_get)(const struct scmi_protocol_handle *ph, u32 domain, int (*limits_get)(const struct scmi_protocol_handle *ph, u32 domain,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment