Commit b55b06b7 authored by Sudeep Holla's avatar Sudeep Holla

firmware: arm_scmi: Stash version in protocol init functions

In order to avoid querying the individual protocol versions multiple
time with more that one device created for each protocol, we can simple
store the copy in the protocol specific private data and use them whenever
required.
Reviewed-by: default avatarCristian Marussi <cristian.marussi@arm.com>
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
parent 50872a94
...@@ -65,6 +65,7 @@ struct scmi_clock_set_rate { ...@@ -65,6 +65,7 @@ struct scmi_clock_set_rate {
}; };
struct clock_info { struct clock_info {
u32 version;
int num_clocks; int num_clocks;
int max_async_req; int max_async_req;
atomic_t cur_async_req; atomic_t cur_async_req;
...@@ -340,6 +341,7 @@ static int scmi_clock_protocol_init(struct scmi_handle *handle) ...@@ -340,6 +341,7 @@ static int scmi_clock_protocol_init(struct scmi_handle *handle)
scmi_clock_describe_rates_get(handle, clkid, clk); scmi_clock_describe_rates_get(handle, clkid, clk);
} }
cinfo->version = version;
handle->clk_ops = &clk_ops; handle->clk_ops = &clk_ops;
handle->clk_priv = cinfo; handle->clk_priv = cinfo;
......
...@@ -145,6 +145,7 @@ struct perf_dom_info { ...@@ -145,6 +145,7 @@ struct perf_dom_info {
}; };
struct scmi_perf_info { struct scmi_perf_info {
u32 version;
int num_domains; int num_domains;
bool power_scale_mw; bool power_scale_mw;
u64 stats_addr; u64 stats_addr;
...@@ -736,6 +737,7 @@ static int scmi_perf_protocol_init(struct scmi_handle *handle) ...@@ -736,6 +737,7 @@ static int scmi_perf_protocol_init(struct scmi_handle *handle)
scmi_perf_domain_init_fc(handle, domain, &dom->fc_info); scmi_perf_domain_init_fc(handle, domain, &dom->fc_info);
} }
pinfo->version = version;
handle->perf_ops = &perf_ops; handle->perf_ops = &perf_ops;
handle->perf_priv = pinfo; handle->perf_priv = pinfo;
......
...@@ -50,6 +50,7 @@ struct power_dom_info { ...@@ -50,6 +50,7 @@ struct power_dom_info {
}; };
struct scmi_power_info { struct scmi_power_info {
u32 version;
int num_domains; int num_domains;
u64 stats_addr; u64 stats_addr;
u32 stats_size; u32 stats_size;
...@@ -207,6 +208,7 @@ static int scmi_power_protocol_init(struct scmi_handle *handle) ...@@ -207,6 +208,7 @@ static int scmi_power_protocol_init(struct scmi_handle *handle)
scmi_power_domain_attributes_get(handle, domain, dom); scmi_power_domain_attributes_get(handle, domain, dom);
} }
pinfo->version = version;
handle->power_ops = &power_ops; handle->power_ops = &power_ops;
handle->power_priv = pinfo; handle->power_priv = pinfo;
......
...@@ -48,6 +48,7 @@ struct reset_dom_info { ...@@ -48,6 +48,7 @@ struct reset_dom_info {
}; };
struct scmi_reset_info { struct scmi_reset_info {
u32 version;
int num_domains; int num_domains;
struct reset_dom_info *dom_info; struct reset_dom_info *dom_info;
}; };
...@@ -217,6 +218,7 @@ static int scmi_reset_protocol_init(struct scmi_handle *handle) ...@@ -217,6 +218,7 @@ static int scmi_reset_protocol_init(struct scmi_handle *handle)
scmi_reset_domain_attributes_get(handle, domain, dom); scmi_reset_domain_attributes_get(handle, domain, dom);
} }
pinfo->version = version;
handle->reset_ops = &reset_ops; handle->reset_ops = &reset_ops;
handle->reset_priv = pinfo; handle->reset_priv = pinfo;
......
...@@ -68,6 +68,7 @@ struct scmi_msg_sensor_reading_get { ...@@ -68,6 +68,7 @@ struct scmi_msg_sensor_reading_get {
}; };
struct sensors_info { struct sensors_info {
u32 version;
int num_sensors; int num_sensors;
int max_requests; int max_requests;
u64 reg_addr; u64 reg_addr;
...@@ -294,6 +295,7 @@ static int scmi_sensors_protocol_init(struct scmi_handle *handle) ...@@ -294,6 +295,7 @@ static int scmi_sensors_protocol_init(struct scmi_handle *handle)
scmi_sensor_description_get(handle, sinfo); scmi_sensor_description_get(handle, sinfo);
sinfo->version = version;
handle->sensor_ops = &sensor_ops; handle->sensor_ops = &sensor_ops;
handle->sensor_priv = sinfo; handle->sensor_priv = sinfo;
......
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