Re: [PATCH v6 0/5] Add support for QCOM Core Power Reduction

From: Ulf Hansson
Date: Wed Nov 20 2019 - 07:00:46 EST


On Tue, 19 Nov 2019 at 16:46, Niklas Cassel <niklas.cassel@xxxxxxxxxx> wrote:
>
> This series adds support for Core Power Reduction (CPR), a form of
> Adaptive Voltage Scaling (AVS), found on certain Qualcomm SoCs.
>
> This series is based on top of the qcs404 cpufreq patch series that
> hasn't landed yet:
> https://patchwork.kernel.org/project/linux-arm-msm/list/?series=173423
> as well as that series' matching device tree changes:
> https://patchwork.kernel.org/project/linux-arm-msm/list/?series=165457
>
> For testing purposes, this patch series, including the dependencies
> listed above, is available on the following git tag:
> https://git.linaro.org/people/niklas.cassel/kernel.git/log/?h=cpr-v6
>
> CPR is a technology that reduces core power on a CPU or on other device.
> It reads voltage settings from efuses (that have been written in
> production), it uses these voltage settings as initial values, for each
> OPP.
>
> After moving to a certain OPP, CPR monitors dynamic factors such as
> temperature, etc. and adjusts the voltage for that frequency accordingly
> to save power and meet silicon characteristic requirements.
>
> This driver has been developed together with Jorge Ramirez-Ortiz, and
> is based on an RFC by Stephen Boyd[1], which in turn is based on work
> by others on codeaurora.org[2].
>
> [1] https://lkml.org/lkml/2015/9/18/833
> [2] https://source.codeaurora.org/quic/la/kernel/msm-4.14/tree/drivers/regulator/cpr-regulator.c?h=msm-4.14
>
> Changes since v5:
> -Removed pm_ops from platform_driver struct.
> (This was embarrassingly not properly removed in previous patch revision.)
>
> Niklas Cassel (5):
> dt-bindings: power: avs: Add support for CPR (Core Power Reduction)
> power: avs: Add support for CPR (Core Power Reduction)
> arm64: dts: qcom: qcs404: Add CPR and populate OPP table
> arm64: defconfig: enable CONFIG_QCOM_CPR
> arm64: defconfig: enable CONFIG_ARM_QCOM_CPUFREQ_NVMEM
>
> .../bindings/power/avs/qcom,cpr.txt | 130 ++
> MAINTAINERS | 8 +
> arch/arm64/boot/dts/qcom/qcs404.dtsi | 132 +-
> arch/arm64/configs/defconfig | 2 +
> drivers/power/avs/Kconfig | 15 +
> drivers/power/avs/Makefile | 1 +
> drivers/power/avs/qcom-cpr.c | 1754 +++++++++++++++++
> 7 files changed, 2034 insertions(+), 8 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
> create mode 100644 drivers/power/avs/qcom-cpr.c
>
> --
> 2.23.0
>

For the series (except patch 2 that I provided some comment for), feel
free to add:

Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>

Kind regards
Uffe