firmware: arm_scmi: Fixup perf power-cost/microwatt support
authorSibi Sankar <quic_sibis@quicinc.com>
Fri, 11 Aug 2023 20:48:18 +0000 (02:18 +0530)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 11 Sep 2023 09:34:05 +0000 (10:34 +0100)
The perf power scale value would currently be reported as bogowatts if the
platform firmware supports microwatt power scale and meets the perf major
version requirements. Fix this by populating version information in the
driver private data before the call to protocol attributes is made.

CC: Chandra Sekhar Lingutla <quic_lingutla@quicinc.com>
Fixes: 3630cd8130ce ("firmware: arm_scmi: Add SCMI v3.1 perf power-cost in microwatts")
Signed-off-by: Sibi Sankar <quic_sibis@quicinc.com>
Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
Link: https://lore.kernel.org/r/20230811204818.30928-1-quic_sibis@quicinc.com
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_scmi/perf.c

index c0cd556fbaaec6946a98b2785990c2edaa14b699..30dedd6ebfde61f54fef878cdfb5b6eadd2a70c1 100644 (file)
@@ -1080,6 +1080,8 @@ static int scmi_perf_protocol_init(const struct scmi_protocol_handle *ph)
        if (!pinfo)
                return -ENOMEM;
 
+       pinfo->version = version;
+
        ret = scmi_perf_attributes_get(ph, pinfo);
        if (ret)
                return ret;
@@ -1104,8 +1106,6 @@ static int scmi_perf_protocol_init(const struct scmi_protocol_handle *ph)
        if (ret)
                return ret;
 
-       pinfo->version = version;
-
        return ph->set_priv(ph, pinfo);
 }