soc: qcom: stats: Add fixed sleep stats offset for older RPM firmwares
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
This commit is contained in:
parent
2e8f2d3a69
commit
708dbf4490
|
@ -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 },
|
||||
{ }
|
||||
|
|
Loading…
Reference in New Issue