On Wed, 13 Oct 2021 12:08:19 +0530, Maulik Shah wrote: > Changes in v12: > - Address Stephan's comments from v11 > - Rename driver and compatible to qcom,rpm(h)-stats > - Skip reading SMEM for RPM targets > - Make driver register in late_init to avoid -EPROBE_DEFER from smem. > - Change size to 0x10000 for RPM targets since area contains many others stats. > > Changes in v11: > - Address Bjorn's comments from v10 > - Add a case for RPM based targets dynamic offset in driver > - Update commit messages to use qcom sleep stats instead of soc sleep stats > - Drop individual target dtsi changes for sc7180 and sc7280 > - Add single change to enable sleep stats for RPMh based targets > - Add single change to enable sleep stats for RPM based targets > > Changes in v10: > - Updated device node name to use memory instead of aop_msgram > - Remove Lina's email from maintainers > - Rename driver to qcom_sleep_stats. Update makefile, Kconfig accordingly > - Address Bjorn's comments from v9 > > Changes in v9: > - Remove soft dependency on smem module > - Return -EIO to userspace in case of error > - Make struct sleep_stats *stat a const pointer > - Remove the driver from soc_sleep_stats_driver name > - Remove offset address and directly mention the msgram address in dtsi > - Use devm_platform_get_and_ioremap_resource() to ioremap dtsi address > - Update device node name to mention aop_msgram instead rpmh-sleep-stats > - Update dtsi and documentation accordingly but retain the reviews > > Changes in v8: > - Addressed bjorn's comments in driver from v7 > - Update aoss_qmp device node reg size for sc7280 > > Changes in v7: > - Fix example in bindings documentation as per #address/size-cells = <1>. > - Add comment in driver from where 'ddr' subsystems name is read. > - Update comment in driver to s/beside/besides and others from v6. > - Rename debugfs_create_entries() from v6. > - Drop use of memcpy_fromio() to find the name. > - Use sizeof(*prv_data) in devm_kzalloc(). > - Add change to define readq() if its not yet defined for compile support. > - Add wpss subsystem in the list of subsystems. > - Add module soft dependency on smem module. > - Add new change to add device node for sc7280. > > Changes in v6: > - Address stephen's comments from v5 which includes below > - Pad 0 in documentation example to make address 8 digit > - define macro to calculate offset in driver > - Add appended_stats_avail to prv_data instead of using entire stats_config > - make array subsystems[] as const > - Add comment for SSR case > - Use memcpy_fromio() and devm_kcalloc() during probe > - Change file permission mode from 444 to 400 > > - Address guenter's comments to add depends on QCOM_SMEM > > - Add adsp_island and cdsp_island subsystems > - Use strim() to remove whitespace in stat name > > Changes in v5: > - Remove underscore from node name in Documentation and DTSI change > - Remove global config from driver change > > Changes in v4: > - Address bjorn's comments from v3 on change 2. > - Add bjorn's Reviewed-by on change 3 and 4. > > Changes in v3: > - Address stephen's comments from v2 in change 1 and 2. > - Address bjorn's comments from v2 in change 3 and 4. > - Add Rob and bjorn's Reviewed-by on YAML change. > > Changes in v2: > - Convert Documentation to YAML. > - Address stephen's comments from v1. > - Use debugfs instead of sysfs. > - Add sc7180 dts changes for sleep stats > - Add defconfig changes to enable driver > - Include subsystem stats from [1] in this single stats driver. > - Address stephen's comments from [1] > - Update cover letter inline to mention [1] > > Qualcomm Technologies, Inc. (QTI)'s chipsets support SoC level low power > modes. SoCs Always On Processor/Resource Power Manager produces statistics > of the SoC sleep modes involving lowering or powering down of the rails and > the oscillator clock. > > Additionally multiple subsystems present on SoC like modem, spss, adsp, > cdsp maintains their low power mode statistics in shared memory (SMEM). > > Statistics includes SoC sleep mode type, number of times LPM entered, time > of last entry, exit, and accumulated sleep duration in seconds. > > This series adds a driver to read the stats and export to debugfs. > > [1] https://lore.kernel.org/patchwork/patch/1149381/ > > Mahesh Sivasubramanian (2): > dt-bindings: Introduce QCOM Sleep stats bindings > soc: qcom: Add Sleep stats driver > > Maulik Shah (3): > arm64: defconfig: Enable Sleep stats driver > arm64: dts: qcom: Enable RPMh Sleep stats > arm64: dts: qcom: Enable RPM Sleep stats > > .../devicetree/bindings/soc/qcom/qcom-stats.yaml | 47 ++++ > arch/arm64/boot/dts/qcom/msm8996.dtsi | 5 + > arch/arm64/boot/dts/qcom/msm8998.dtsi | 5 + > arch/arm64/boot/dts/qcom/qcs404.dtsi | 5 + > arch/arm64/boot/dts/qcom/sc7180.dtsi | 7 +- > arch/arm64/boot/dts/qcom/sc7280.dtsi | 7 +- > arch/arm64/boot/dts/qcom/sdm630.dtsi | 5 + > arch/arm64/boot/dts/qcom/sm6125.dtsi | 5 + > arch/arm64/boot/dts/qcom/sm8150.dtsi | 7 +- > arch/arm64/boot/dts/qcom/sm8250.dtsi | 7 +- > arch/arm64/boot/dts/qcom/sm8350.dtsi | 7 +- > arch/arm64/configs/defconfig | 1 + > drivers/soc/qcom/Kconfig | 10 + > drivers/soc/qcom/Makefile | 1 + > drivers/soc/qcom/qcom_stats.c | 277 +++++++++++++++++++++ > 15 files changed, 391 insertions(+), 5 deletions(-) > create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-stats.yaml > create mode 100644 drivers/soc/qcom/qcom_stats.c > > -- On msm8996-xiaomi-scorpio: # cat /sys/kernel/debug/qcom_stats/* Count: 0 Last Entered At: 0 Last Exited At: 0 Accumulated Duration: 0 Client Votes: 0x0 Count: 0 Last Entered At: 0 Last Exited At: 0 Accumulated Duration: 0 Client Votes: 0x0 Also, the warnings from v11 are no longer showing up. Tested-by: Yassine Oudjana <y.oudjana@xxxxxxxxxxxxxx>