On Mon 18 Oct 06:08 CDT 2021, Stephan Gerhold wrote: > Not all RPM firmware versions have the dynamic sleep stats offset > available. Older versions use a fixed offset of 0xdba0. > > Add support for this using a new qcom,rpm-legacy-stats compatible > that can be used for older SoCs like MSM8916. > > Suggested-by: Maulik Shah <mkshah@xxxxxxxxxxxxxx> > Signed-off-by: Stephan Gerhold <stephan@xxxxxxxxxxx> > --- > drivers/soc/qcom/qcom_stats.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/soc/qcom/qcom_stats.c b/drivers/soc/qcom/qcom_stats.c > index 817505bd99b5..67728de718fd 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_legacy_data = { > + .stats_offset = 0xdba0, > + .num_records = 2, > + .appended_stats_avail = true, > + .dynamic_offset = false, > + .subsystem_stats_in_smem = false, > +}; Is this the only variation that existed back in the "legacy" days? Will we end up with multiple "legacy" variants? > + > static const struct stats_config rpmh_data = { > .stats_offset = 0x48, > .num_records = 3, > @@ -247,6 +256,7 @@ static const struct stats_config rpmh_data = { > > static const struct of_device_id qcom_stats_table[] = { > { .compatible = "qcom,rpm-stats", .data = &rpm_data }, > + { .compatible = "qcom,rpm-legacy-stats", .data = &rpm_legacy_data }, 'l' < 's'... Regards, Bjorn > { .compatible = "qcom,rpmh-stats", .data = &rpmh_data }, > { } > }; > -- > 2.33.0 >