On Fri 19 Nov 13:39 PST 2021, Stephan Gerhold wrote: > 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@xxxxxxxxxxxxxx> > Signed-off-by: Stephan Gerhold <stephan@xxxxxxxxxxx> Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> Regards, Bjorn > --- > Changes in v2: > - Use SoC-specific compatibles instead of qcom,rpm-legacy-stats > --- > drivers/soc/qcom/qcom_stats.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/soc/qcom/qcom_stats.c b/drivers/soc/qcom/qcom_stats.c > index 131d24caabf8..d6bfd1bbdc2a 100644 > --- a/drivers/soc/qcom/qcom_stats.c > +++ b/drivers/soc/qcom/qcom_stats.c > @@ -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 }, > { } > -- > 2.34.0 >