mbox series

[v2,0/6] Add APSS RSC to Cluster power domain

Message ID 1652275016-13423-1-git-send-email-quic_mkshah@quicinc.com
Headers show
Series Add APSS RSC to Cluster power domain | expand

Message

Maulik Shah (mkshah) May 11, 2022, 1:16 p.m. UTC
Changes in v2:
- First four changes from v1 are already in linux-next, drop them
- Update dt-bindings change to yaml format
- Address Ulf's comments from v1 patches

This series patches 1 to 4 adds/corrects the cpuidle states/
apps_rsc TCS configuration to make it same as downstream kernel.

The patches 5, 6 and 7 adds apps_rsc device to cluster power domain such
that when cluster is going to power down the cluster pre off notification
will program the 'sleep' and 'wake' votes in SLEEP TCS and WAKE TCSes.

The patches 8, 9 and 10 are to program the next wakeup in CONTROL_TCS.

[1], [2] was older way of programming CONTROL_TCS (exporting an API and
calling when last CPU was entering deeper low power mode). Now with patch
number 5,6 and 7 the apps RSC is added to to cluster power domain and hence
these patches are no longer needed with this series.

The series is tested on SM8250 with latest linux-next tag next-20220107.

[1] https://patchwork.kernel.org/project/linux-arm-msm/patch/20190218140210.14631-3-rplsssn@codeaurora.org/
[2] https://patchwork.kernel.org/project/linux-arm-msm/list/?series=59613

Lina Iyer (1):
  soc: qcom: rpmh-rsc: Attach RSC to cluster PM domain

Maulik Shah (5):
  dt-bindings: soc: qcom: Update devicetree binding document for
    rpmh-rsc
  arm64: dts: qcom: Add power-domains property for apps_rsc
  PM: domains: Store the closest hrtimer event of the domain CPUs
  soc: qcom: rpmh-rsc: Save base address of drv
  soc: qcom: rpmh-rsc: Write CONTROL_TCS with next timer wakeup

 .../bindings/soc/qcom/qcom,rpmh-rsc.yaml           |   5 +
 arch/arm64/boot/dts/qcom/sm8150.dtsi               |   1 +
 arch/arm64/boot/dts/qcom/sm8250.dtsi               |   1 +
 arch/arm64/boot/dts/qcom/sm8350.dtsi               |   1 +
 arch/arm64/boot/dts/qcom/sm8450.dtsi               |   1 +
 drivers/base/power/domain.c                        |  24 ++++
 drivers/base/power/domain_governor.c               |   1 +
 drivers/soc/qcom/rpmh-internal.h                   |   9 +-
 drivers/soc/qcom/rpmh-rsc.c                        | 146 +++++++++++++++++++--
 drivers/soc/qcom/rpmh.c                            |   4 +-
 include/linux/pm_domain.h                          |   7 +
 11 files changed, 184 insertions(+), 16 deletions(-)

Comments

Rob Herring May 17, 2022, 2:21 p.m. UTC | #1
On Wed, 11 May 2022 18:46:51 +0530, Maulik Shah wrote:
> The change documents power-domains property for RSC device.
> This optional property points to corresponding PM domain node.
> 
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Maulik Shah <quic_mkshah@quicinc.com>
> ---
>  Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml | 5 +++++
>  1 file changed, 5 insertions(+)
> 

Acked-by: Rob Herring <robh@kernel.org>
Dmitry Baryshkov July 4, 2022, 4:09 p.m. UTC | #2
On 11/05/2022 16:16, Maulik Shah wrote:
> Changes in v2:
> - First four changes from v1 are already in linux-next, drop them
> - Update dt-bindings change to yaml format
> - Address Ulf's comments from v1 patches
> 
> This series patches 1 to 4 adds/corrects the cpuidle states/
> apps_rsc TCS configuration to make it same as downstream kernel.
> 
> The patches 5, 6 and 7 adds apps_rsc device to cluster power domain such
> that when cluster is going to power down the cluster pre off notification
> will program the 'sleep' and 'wake' votes in SLEEP TCS and WAKE TCSes.
> 
> The patches 8, 9 and 10 are to program the next wakeup in CONTROL_TCS.
> 
> [1], [2] was older way of programming CONTROL_TCS (exporting an API and
> calling when last CPU was entering deeper low power mode). Now with patch
> number 5,6 and 7 the apps RSC is added to to cluster power domain and hence
> these patches are no longer needed with this series.
> 
> The series is tested on SM8250 with latest linux-next tag next-20220107.
> 
> [1] https://patchwork.kernel.org/project/linux-arm-msm/patch/20190218140210.14631-3-rplsssn@codeaurora.org/
> [2] https://patchwork.kernel.org/project/linux-arm-msm/list/?series=59613

Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> # SM8450

Also please note, that these patches fix the regression on sm8[1234]50, 
which dates back to 5.18 (because the dts parts were merged at that 
point). Amit has responded rpmh clock timeouts on RB5. On SM8450 we 
observed random board stalls. Could you please describe this in the 
cover letter and follow the process described in stable-kernel-rules.rst 
to get these patches backported into 5.18/5.19. It would be critical to 
get them in through the stable queue.

> 
> Lina Iyer (1):
>    soc: qcom: rpmh-rsc: Attach RSC to cluster PM domain
> 
> Maulik Shah (5):
>    dt-bindings: soc: qcom: Update devicetree binding document for
>      rpmh-rsc
>    arm64: dts: qcom: Add power-domains property for apps_rsc
>    PM: domains: Store the closest hrtimer event of the domain CPUs
>    soc: qcom: rpmh-rsc: Save base address of drv
>    soc: qcom: rpmh-rsc: Write CONTROL_TCS with next timer wakeup
> 
>   .../bindings/soc/qcom/qcom,rpmh-rsc.yaml           |   5 +
>   arch/arm64/boot/dts/qcom/sm8150.dtsi               |   1 +
>   arch/arm64/boot/dts/qcom/sm8250.dtsi               |   1 +
>   arch/arm64/boot/dts/qcom/sm8350.dtsi               |   1 +
>   arch/arm64/boot/dts/qcom/sm8450.dtsi               |   1 +
>   drivers/base/power/domain.c                        |  24 ++++
>   drivers/base/power/domain_governor.c               |   1 +
>   drivers/soc/qcom/rpmh-internal.h                   |   9 +-
>   drivers/soc/qcom/rpmh-rsc.c                        | 146 +++++++++++++++++++--
>   drivers/soc/qcom/rpmh.c                            |   4 +-
>   include/linux/pm_domain.h                          |   7 +
>   11 files changed, 184 insertions(+), 16 deletions(-)
>