soc: qcom: stats: Add fixed sleep stats offset for older RPM firmwares
authorStephan Gerhold <stephan@gerhold.net>
Fri, 19 Nov 2021 21:39:52 +0000 (22:39 +0100)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Tue, 21 Dec 2021 01:10:09 +0000 (19:10 -0600)
Not all RPM firmware versions have the dynamic sleep stats offset
available. Most older versions use a fixed offset of 0xdba0.
Add support for this using new SoC-specific compatibles for APQ8084,
MSM8226, MSM8916 and MSM8974.

Even older SoCs seem to use a different offset and stats format.
If needed those could be supported in the future by adding separate
compatibles for those with a different stats_config.

Cc: Maulik Shah <mkshah@codeaurora.org>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20211119213953.31970-3-stephan@gerhold.net
drivers/soc/qcom/qcom_stats.c

index 131d24c..d6bfd1b 100644 (file)
@@ -237,6 +237,15 @@ static const struct stats_config rpm_data = {
        .subsystem_stats_in_smem = false,
 };
 
+/* Older RPM firmwares have the stats at a fixed offset instead */
+static const struct stats_config rpm_data_dba0 = {
+       .stats_offset = 0xdba0,
+       .num_records = 2,
+       .appended_stats_avail = true,
+       .dynamic_offset = false,
+       .subsystem_stats_in_smem = false,
+};
+
 static const struct stats_config rpmh_data = {
        .stats_offset = 0x48,
        .num_records = 3,
@@ -246,6 +255,10 @@ static const struct stats_config rpmh_data = {
 };
 
 static const struct of_device_id qcom_stats_table[] = {
+       { .compatible = "qcom,apq8084-rpm-stats", .data = &rpm_data_dba0 },
+       { .compatible = "qcom,msm8226-rpm-stats", .data = &rpm_data_dba0 },
+       { .compatible = "qcom,msm8916-rpm-stats", .data = &rpm_data_dba0 },
+       { .compatible = "qcom,msm8974-rpm-stats", .data = &rpm_data_dba0 },
        { .compatible = "qcom,rpm-stats", .data = &rpm_data },
        { .compatible = "qcom,rpmh-stats", .data = &rpmh_data },
        { }