linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/24] GPU_CC power requirements reality check
@ 2025-07-28 16:16 Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 01/24] dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO Konrad Dybcio
                   ` (24 more replies)
  0 siblings, 25 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

In an effort parallel to [1], the GPU clock controller requires more
than 0/1 power domains to function properly.
Describe these dependencies to ensure the hardware can always power on
safely.

Patches 1 & 2 are separate (but related) fixes,  which need to be
merged before the DT change for SC8280XP.

Posting as RFC since I only got to test it on SC8280XP(-crd).

[1] https://lore.kernel.org/all/20250530-videocc-pll-multi-pd-voting-v5-0-02303b3a582d@quicinc.com/

Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
Konrad Dybcio (24):
      dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO
      pmdomain: qcom: rpmhpd: Add MXC to SC8280XP
      dt-bindings: clock: qcom,gpucc: Merge in sm8450-gpucc.yaml
      dt-bindings: clock: qcom,gpucc: Describe actual power domain plumbing
      dt-bindings: clock: qcom,gpucc: Sort out SA8540P constraints
      arm64: dts: qcom: qcs8300: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sa8540p: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sa8775p: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sar2130p: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sc7180: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sc7280: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sc8180x: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sc8280xp: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sdm670: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sdm845: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sm4450: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sm6350: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sm8150: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sm8250: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sm8350: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sm8450: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sm8550: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: sm8650: Describe GPU_CC power plumbing requirements
      arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements

 .../devicetree/bindings/clock/qcom,gpucc.yaml      | 155 ++++++++++++++++++---
 .../bindings/clock/qcom,sm8450-gpucc.yaml          |  75 ----------
 arch/arm64/boot/dts/qcom/qcs8300.dtsi              |   6 +
 arch/arm64/boot/dts/qcom/sa8155p.dtsi              |   6 +
 arch/arm64/boot/dts/qcom/sa8540p.dtsi              |   6 +-
 arch/arm64/boot/dts/qcom/sa8775p.dtsi              |   5 +
 arch/arm64/boot/dts/qcom/sar2130p.dtsi             |   5 +
 arch/arm64/boot/dts/qcom/sc7180.dtsi               |   5 +
 arch/arm64/boot/dts/qcom/sc7280.dtsi               |   5 +
 arch/arm64/boot/dts/qcom/sc8180x.dtsi              |   5 +
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi             |   6 +-
 arch/arm64/boot/dts/qcom/sdm670.dtsi               |   4 +
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |   4 +
 arch/arm64/boot/dts/qcom/sm4450.dtsi               |   4 +
 arch/arm64/boot/dts/qcom/sm6350.dtsi               |   4 +
 arch/arm64/boot/dts/qcom/sm8150.dtsi               |   4 +
 arch/arm64/boot/dts/qcom/sm8250.dtsi               |   5 +
 arch/arm64/boot/dts/qcom/sm8350.dtsi               |   6 +
 arch/arm64/boot/dts/qcom/sm8450.dtsi               |   6 +
 arch/arm64/boot/dts/qcom/sm8550.dtsi               |   6 +
 arch/arm64/boot/dts/qcom/sm8650.dtsi               |   5 +
 arch/arm64/boot/dts/qcom/x1e80100.dtsi             |   6 +
 drivers/pmdomain/qcom/rpmhpd.c                     |   4 +
 include/dt-bindings/power/qcom-rpmpd.h             |   1 +
 24 files changed, 240 insertions(+), 98 deletions(-)
---
base-commit: 0b90c3b6d76ea512dc3dac8fb30215e175b0019a
change-id: 20250728-topic-gpucc_power_plumbing-646275aec2cb

Best regards,
-- 
Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 36+ messages in thread

* [PATCH RFC 01/24] dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-30 22:01   ` Rob Herring (Arm)
  2025-07-28 16:16 ` [PATCH RFC 02/24] pmdomain: qcom: rpmhpd: Add MXC to SC8280XP Konrad Dybcio
                   ` (23 subsequent siblings)
  24 siblings, 1 reply; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Not sure how useful it's gonna be in practice, but the definition is
missing (unlike the previously-unused SC8280XP_MXC-non-_AO), so add it
to allow the driver to create the corresponding pmdomain.

Fixes: dbfb5f94e084 ("dt-bindings: power: rpmpd: Add sc8280xp RPMh power-domains")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 include/dt-bindings/power/qcom-rpmpd.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/dt-bindings/power/qcom-rpmpd.h b/include/dt-bindings/power/qcom-rpmpd.h
index f15bcee7c9283e74dc8e6f9b6b6f73c0ced009e4..6860ca6360a7bce43a331f9d1c10a11646b0041f 100644
--- a/include/dt-bindings/power/qcom-rpmpd.h
+++ b/include/dt-bindings/power/qcom-rpmpd.h
@@ -214,6 +214,7 @@
 #define SC8280XP_NSP		13
 #define SC8280XP_QPHY		14
 #define SC8280XP_XO		15
+#define SC8280XP_MXC_AO		16
 
 /* SDM845 Power Domain performance levels */
 #define RPMH_REGULATOR_LEVEL_RETENTION		16

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 02/24] pmdomain: qcom: rpmhpd: Add MXC to SC8280XP
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 01/24] dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-31 20:31   ` Dmitry Baryshkov
  2025-07-28 16:16 ` [PATCH RFC 03/24] dt-bindings: clock: qcom,gpucc: Merge in sm8450-gpucc.yaml Konrad Dybcio
                   ` (22 subsequent siblings)
  24 siblings, 1 reply; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

This was apparently accounted for in dt-bindings, but never made its
way into the driver.

Fix it for SC8280XP and its VDD_GFX-less cousin, SA8540P.

Fixes: f68f1cb3437d ("soc: qcom: rpmhpd: add sc8280xp & sa8540p rpmh power-domains")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 drivers/pmdomain/qcom/rpmhpd.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/pmdomain/qcom/rpmhpd.c b/drivers/pmdomain/qcom/rpmhpd.c
index 4faa8a25618621e15d684c4f971785d604601efb..4c3cbf3abc7504cce3b8211c339b7ada03d65e38 100644
--- a/drivers/pmdomain/qcom/rpmhpd.c
+++ b/drivers/pmdomain/qcom/rpmhpd.c
@@ -246,6 +246,8 @@ static struct rpmhpd *sa8540p_rpmhpds[] = {
 	[SC8280XP_MMCX_AO] = &mmcx_ao,
 	[SC8280XP_MX] = &mx,
 	[SC8280XP_MX_AO] = &mx_ao,
+	[SC8280XP_MXC] = &mxc,
+	[SC8280XP_MXC_AO] = &mxc_ao,
 	[SC8280XP_NSP] = &nsp,
 };
 
@@ -675,6 +677,8 @@ static struct rpmhpd *sc8280xp_rpmhpds[] = {
 	[SC8280XP_MMCX_AO] = &mmcx_ao,
 	[SC8280XP_MX] = &mx,
 	[SC8280XP_MX_AO] = &mx_ao,
+	[SC8280XP_MXC] = &mxc,
+	[SC8280XP_MXC_AO] = &mxc_ao,
 	[SC8280XP_NSP] = &nsp,
 	[SC8280XP_QPHY] = &qphy,
 };

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 03/24] dt-bindings: clock: qcom,gpucc: Merge in sm8450-gpucc.yaml
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 01/24] dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 02/24] pmdomain: qcom: rpmhpd: Add MXC to SC8280XP Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-30 22:04   ` Rob Herring (Arm)
  2025-07-28 16:16 ` [PATCH RFC 04/24] dt-bindings: clock: qcom,gpucc: Describe actual power domain plumbing Konrad Dybcio
                   ` (21 subsequent siblings)
  24 siblings, 1 reply; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

The only difference is the requirement of clock-names, and only for
legacy reasons.

Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 .../devicetree/bindings/clock/qcom,gpucc.yaml      | 42 +++++++++++-
 .../bindings/clock/qcom,sm8450-gpucc.yaml          | 75 ----------------------
 2 files changed, 39 insertions(+), 78 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
index 4cdff6161bf0b17526cc62b67d9c95086240fe46..5053d71f918bb28c504746f68e782ca719051f63 100644
--- a/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
@@ -9,37 +9,55 @@ title: Qualcomm Graphics Clock & Reset Controller
 maintainers:
   - Taniya Das <quic_tdas@quicinc.com>
   - Imran Shaik <quic_imrashai@quicinc.com>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm graphics clock control module provides the clocks, resets and power
   domains on Qualcomm SoCs.
 
   See also::
-    include/dt-bindings/clock/qcom,gpucc-sdm845.h
+      include/dt-bindings/clock/qcom,milos-gpucc.h
     include/dt-bindings/clock/qcom,gpucc-sa8775p.h
     include/dt-bindings/clock/qcom,gpucc-sc7180.h
     include/dt-bindings/clock/qcom,gpucc-sc7280.h
     include/dt-bindings/clock/qcom,gpucc-sc8280xp.h
+    include/dt-bindings/clock/qcom,gpucc-sdm845.h
     include/dt-bindings/clock/qcom,gpucc-sm6350.h
     include/dt-bindings/clock/qcom,gpucc-sm8150.h
     include/dt-bindings/clock/qcom,gpucc-sm8250.h
     include/dt-bindings/clock/qcom,gpucc-sm8350.h
     include/dt-bindings/clock/qcom,qcs8300-gpucc.h
+    include/dt-bindings/clock/qcom,sar2130p-gpucc.h
+    include/dt-bindings/clock/qcom,sm4450-gpucc.h
+    include/dt-bindings/clock/qcom,sm8450-gpucc.h
+    include/dt-bindings/clock/qcom,sm8550-gpucc.h
+    include/dt-bindings/reset/qcom,sm8450-gpucc.h
+    include/dt-bindings/reset/qcom,sm8650-gpucc.h
+    include/dt-bindings/reset/qcom,x1e80100-gpucc.h
 
 properties:
   compatible:
     enum:
+      - qcom,milos-gpucc
       - qcom,qcs8300-gpucc
-      - qcom,sdm845-gpucc
       - qcom,sa8775p-gpucc
+      - qcom,sar2130p-gpucc
       - qcom,sc7180-gpucc
       - qcom,sc7280-gpucc
       - qcom,sc8180x-gpucc
       - qcom,sc8280xp-gpucc
+      - qcom,sdm845-gpucc
+      - qcom,sm4450-gpucc
       - qcom,sm6350-gpucc
       - qcom,sm8150-gpucc
       - qcom,sm8250-gpucc
       - qcom,sm8350-gpucc
+      - qcom,sm8450-gpucc
+      - qcom,sm8475-gpucc
+      - qcom,sm8550-gpucc
+      - qcom,sm8650-gpucc
+      - qcom,x1e80100-gpucc
+      - qcom,x1p42100-gpucc
 
   clocks:
     items:
@@ -62,7 +80,6 @@ properties:
 required:
   - compatible
   - clocks
-  - clock-names
   - '#power-domain-cells'
 
 # Require that power-domains and vdd-gfx-supply are not both present
@@ -74,6 +91,25 @@ not:
 allOf:
   - $ref: qcom,gcc.yaml#
 
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,qcs8300-gpucc
+            - qcom,sdm845-gpucc
+            - qcom,sa8775p-gpucc
+            - qcom,sc7180-gpucc
+            - qcom,sc7280-gpucc
+            - qcom,sc8180x-gpucc
+            - qcom,sc8280xp-gpucc
+            - qcom,sm6350-gpucc
+            - qcom,sm8150-gpucc
+            - qcom,sm8250-gpucc
+            - qcom,sm8350-gpucc
+    then:
+      required:
+        - clock-names
+
 unevaluatedProperties: false
 
 examples:
diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8450-gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8450-gpucc.yaml
deleted file mode 100644
index 44380f6f81368339c2b264bde4d8ad9a23baca72..0000000000000000000000000000000000000000
--- a/Documentation/devicetree/bindings/clock/qcom,sm8450-gpucc.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/clock/qcom,sm8450-gpucc.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Qualcomm Graphics Clock & Reset Controller on SM8450
-
-maintainers:
-  - Konrad Dybcio <konradybcio@kernel.org>
-
-description: |
-  Qualcomm graphics clock control module provides the clocks, resets and power
-  domains on Qualcomm SoCs.
-
-  See also::
-    include/dt-bindings/clock/qcom,milos-gpucc.h
-    include/dt-bindings/clock/qcom,sar2130p-gpucc.h
-    include/dt-bindings/clock/qcom,sm4450-gpucc.h
-    include/dt-bindings/clock/qcom,sm8450-gpucc.h
-    include/dt-bindings/clock/qcom,sm8550-gpucc.h
-    include/dt-bindings/reset/qcom,sm8450-gpucc.h
-    include/dt-bindings/reset/qcom,sm8650-gpucc.h
-    include/dt-bindings/reset/qcom,x1e80100-gpucc.h
-
-properties:
-  compatible:
-    enum:
-      - qcom,milos-gpucc
-      - qcom,sar2130p-gpucc
-      - qcom,sm4450-gpucc
-      - qcom,sm8450-gpucc
-      - qcom,sm8475-gpucc
-      - qcom,sm8550-gpucc
-      - qcom,sm8650-gpucc
-      - qcom,x1e80100-gpucc
-      - qcom,x1p42100-gpucc
-
-  clocks:
-    items:
-      - description: Board XO source
-      - description: GPLL0 main branch source
-      - description: GPLL0 div branch source
-
-required:
-  - compatible
-  - clocks
-  - '#power-domain-cells'
-
-allOf:
-  - $ref: qcom,gcc.yaml#
-
-unevaluatedProperties: false
-
-examples:
-  - |
-    #include <dt-bindings/clock/qcom,gcc-sm8450.h>
-    #include <dt-bindings/clock/qcom,rpmh.h>
-
-    soc {
-        #address-cells = <2>;
-        #size-cells = <2>;
-
-        clock-controller@3d90000 {
-            compatible = "qcom,sm8450-gpucc";
-            reg = <0 0x03d90000 0 0xa000>;
-            clocks = <&rpmhcc RPMH_CXO_CLK>,
-                     <&gcc GCC_GPU_GPLL0_CLK_SRC>,
-                     <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
-            #clock-cells = <1>;
-            #reset-cells = <1>;
-            #power-domain-cells = <1>;
-        };
-    };
-...

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 04/24] dt-bindings: clock: qcom,gpucc: Describe actual power domain plumbing
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (2 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 03/24] dt-bindings: clock: qcom,gpucc: Merge in sm8450-gpucc.yaml Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 05/24] dt-bindings: clock: qcom,gpucc: Sort out SA8540P constraints Konrad Dybcio
                   ` (20 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

GPU_CC is always powered from the VDD_CX rail.

On platforms with a split MX rail (MX_A/C for ALWAYS/COLLAPSIBLE), both
are required. Otherwise, the common MX rail powers part of the logic,
including the PLLs.

Extend the current requirements to make sure the hardware is powered
adequately and the votes are released when no longer necessary.

Skiping "Fixes" as it would apply to NUM_PLATFORMS commits..

Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 .../devicetree/bindings/clock/qcom,gpucc.yaml      | 68 +++++++++++++++++++++-
 1 file changed, 67 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
index 5053d71f918bb28c504746f68e782ca719051f63..1a6f8889db35296b59973c90b8133abfed75baaf 100644
--- a/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
@@ -72,7 +72,10 @@ properties:
       - const: gcc_gpu_gpll0_div_clk_src
 
   power-domains:
-    maxItems: 1
+    description:
+      Power domains required for the clock controller to operate
+    minItems: 2
+    maxItems: 4
 
   vdd-gfx-supply:
     description: Regulator supply for the VDD_GFX pads
@@ -80,6 +83,7 @@ properties:
 required:
   - compatible
   - clocks
+  - power-domains
   - '#power-domain-cells'
 
 # Require that power-domains and vdd-gfx-supply are not both present
@@ -91,6 +95,62 @@ not:
 allOf:
   - $ref: qcom,gcc.yaml#
 
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,qcs8300-gpucc
+            - qcom,sa8775p-gpucc
+            - qcom,sar2130p-gpucc
+            - qcom,sc8280xp-gpucc
+            - qcom,sm8350-gpucc
+            - qcom,sm8450-gpucc
+            - qcom,sm8475-gpucc
+            - qcom,sm8550-gpucc
+            - qcom,sm8650-gpucc
+            - qcom,x1e80100-gpucc
+            - qcom,x1p42100-gpucc
+    then:
+      properties:
+        power-domains:
+          items:
+            - description: CX power domain
+            - description: MX power domain
+            - description: GFX power domain
+            - description: MX_COLLAPSIBLE power domain
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,milos-gpucc
+            - qcom,sc7180-gpucc
+            - qcom,sc7280-gpucc
+            - qcom,sc8180x-gpucc
+            - qcom,sdm845-gpucc
+            - qcom,sm8150-gpucc
+            - qcom,sm8250-gpucc
+    then:
+      properties:
+        power-domains:
+          items:
+            - description: CX power domain
+            - description: MX power domain
+            - description: GFX power domain
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,sm4450-gpucc
+            - qcom,sm6350-gpucc
+    then:
+      properties:
+        power-domains:
+          items:
+            - description: CX power domain
+            - description: MX power domain
+
   - if:
       properties:
         compatible:
@@ -116,6 +176,8 @@ examples:
   - |
     #include <dt-bindings/clock/qcom,gcc-sdm845.h>
     #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
+
     clock-controller@5090000 {
       compatible = "qcom,sdm845-gpucc";
       reg = <0x05090000 0x9000>;
@@ -128,5 +190,9 @@ examples:
       #clock-cells = <1>;
       #reset-cells = <1>;
       #power-domain-cells = <1>;
+
+      power-domains = <&rpmhpd SDM845_CX>,
+                      <&rpmhpd SDM845_MX>,
+                      <&rpmhpd SDM845_GFX>;
     };
 ...

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 05/24] dt-bindings: clock: qcom,gpucc: Sort out SA8540P constraints
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (3 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 04/24] dt-bindings: clock: qcom,gpucc: Describe actual power domain plumbing Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 06/24] arm64: dts: qcom: qcs8300: Describe GPU_CC power plumbing requirements Konrad Dybcio
                   ` (19 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

The platform in question is a close cousin of SC8280XP, most notably
lacking an on-SoC VDD_GFX rail, substituting it with an external
regulator.

The GPU_CC block was previously believed to only require a handle to
some form of VDD_GFX, but that's now known not to be enough.

Introduce a new compatible, using the SC8280XP fallback, to constrain
a different number of power-domains and remove the pd-regulator
exclusivity check, as it no longer applies.

Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 .../devicetree/bindings/clock/qcom,gpucc.yaml      | 65 +++++++++++++---------
 1 file changed, 38 insertions(+), 27 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
index 1a6f8889db35296b59973c90b8133abfed75baaf..3beb8f2c3d7a1b3f820c6452fc4000e6cfa14070 100644
--- a/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
@@ -37,27 +37,31 @@ description: |
 
 properties:
   compatible:
-    enum:
-      - qcom,milos-gpucc
-      - qcom,qcs8300-gpucc
-      - qcom,sa8775p-gpucc
-      - qcom,sar2130p-gpucc
-      - qcom,sc7180-gpucc
-      - qcom,sc7280-gpucc
-      - qcom,sc8180x-gpucc
-      - qcom,sc8280xp-gpucc
-      - qcom,sdm845-gpucc
-      - qcom,sm4450-gpucc
-      - qcom,sm6350-gpucc
-      - qcom,sm8150-gpucc
-      - qcom,sm8250-gpucc
-      - qcom,sm8350-gpucc
-      - qcom,sm8450-gpucc
-      - qcom,sm8475-gpucc
-      - qcom,sm8550-gpucc
-      - qcom,sm8650-gpucc
-      - qcom,x1e80100-gpucc
-      - qcom,x1p42100-gpucc
+    oneOf:
+      - enum:
+          - qcom,milos-gpucc
+          - qcom,qcs8300-gpucc
+          - qcom,sa8775p-gpucc
+          - qcom,sar2130p-gpucc
+          - qcom,sc7180-gpucc
+          - qcom,sc7280-gpucc
+          - qcom,sc8180x-gpucc
+          - qcom,sc8280xp-gpucc
+          - qcom,sdm845-gpucc
+          - qcom,sm4450-gpucc
+          - qcom,sm6350-gpucc
+          - qcom,sm8150-gpucc
+          - qcom,sm8250-gpucc
+          - qcom,sm8350-gpucc
+          - qcom,sm8450-gpucc
+          - qcom,sm8475-gpucc
+          - qcom,sm8550-gpucc
+          - qcom,sm8650-gpucc
+          - qcom,x1e80100-gpucc
+          - qcom,x1p42100-gpucc
+      - items:
+          - const: qcom,sa8540p-gpucc
+          - const: qcom,sc8280xp-gpucc
 
   clocks:
     items:
@@ -86,12 +90,6 @@ required:
   - power-domains
   - '#power-domain-cells'
 
-# Require that power-domains and vdd-gfx-supply are not both present
-not:
-  required:
-    - power-domains
-    - vdd-gfx-supply
-
 allOf:
   - $ref: qcom,gcc.yaml#
 
@@ -151,6 +149,19 @@ allOf:
             - description: CX power domain
             - description: MX power domain
 
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,sa8540p-gpucc
+    then:
+      properties:
+        power-domains:
+          items:
+            - description: CX power domain
+            - description: MX power domain
+            - description: MX_COLLAPSIBLE power domain
+
   - if:
       properties:
         compatible:

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 06/24] arm64: dts: qcom: qcs8300: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (4 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 05/24] dt-bindings: clock: qcom,gpucc: Sort out SA8540P constraints Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 07/24] arm64: dts: qcom: sa8540p: " Konrad Dybcio
                   ` (18 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 795255cb4cd4 ("arm64: dts: qcom: qcs8300: Add support for clock controllers")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/qcs8300.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qcs8300.dtsi b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
index 7ada029c32c1f2d0488a3fd1be603887c64bf4f9..c4b1d9247ccb65db7396480d94f2ccec4c9e3e7b 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
@@ -3912,6 +3912,12 @@ gpucc: clock-controller@3d90000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd RPMHPD_CX>,
+					<&rpmhpd RPMHPD_MX>,
+					<&rpmhpd RPMHPD_GFX>,
+					<&rpmhpd RPMHPD_MXC>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 07/24] arm64: dts: qcom: sa8540p: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (5 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 06/24] arm64: dts: qcom: qcs8300: Describe GPU_CC power plumbing requirements Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 08/24] arm64: dts: qcom: sa8775p: " Konrad Dybcio
                   ` (17 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: eec51ab2fd6f ("arm64: dts: qcom: sc8280xp: Add GPU related nodes")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sa8540p.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sa8540p.dtsi b/arch/arm64/boot/dts/qcom/sa8540p.dtsi
index 23888029cc117956d8531c423c3249e897ede0d9..96fac8b20cffcce2670d71499d5b9831dfcdcc94 100644
--- a/arch/arm64/boot/dts/qcom/sa8540p.dtsi
+++ b/arch/arm64/boot/dts/qcom/sa8540p.dtsi
@@ -168,8 +168,12 @@ opp-2592000000 {
 };
 
 &gpucc {
+	compatible = "qcom,sa8540p-gpucc", "qcom,sc8280xp-gpucc";
+
 	/* SA8295P and SA8540P doesn't provide gfx.lvl */
-	/delete-property/ power-domains;
+	power-domains = <&rpmhpd SC8280XP_CX>,
+			<&rpmhpd SC8280XP_MX>,
+			<&rpmhpd SC8280XP_MXC>;
 
 	status = "disabled";
 };

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 08/24] arm64: dts: qcom: sa8775p: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (6 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 07/24] arm64: dts: qcom: sa8540p: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 09/24] arm64: dts: qcom: sar2130p: " Konrad Dybcio
                   ` (16 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 597cfc178829 ("arm64: dts: qcom: sa8775p: add the GPU clock controller node")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sa8775p.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sa8775p.dtsi b/arch/arm64/boot/dts/qcom/sa8775p.dtsi
index 9997a29901f57d7894dc1eacb6a809caa427c6c4..e41972af604b328cf964997dde5a7d10b2727fa8 100644
--- a/arch/arm64/boot/dts/qcom/sa8775p.dtsi
+++ b/arch/arm64/boot/dts/qcom/sa8775p.dtsi
@@ -4089,6 +4089,11 @@ gpucc: clock-controller@3d90000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd SA8775P_CX>,
+					<&rpmhpd SA8775P_MX>,
+					<&rpmhpd SA8775P_GFX>,
+					<&rpmhpd SA8775P_MXC>;
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 09/24] arm64: dts: qcom: sar2130p: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (7 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 08/24] arm64: dts: qcom: sa8775p: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 10/24] arm64: dts: qcom: sc7180: " Konrad Dybcio
                   ` (15 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: be9115bfe5bf ("arm64: dts: qcom: sar2130p: add support for SAR2130P")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sar2130p.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sar2130p.dtsi b/arch/arm64/boot/dts/qcom/sar2130p.dtsi
index 38f7869616ff01ece3799ced15c39375d629e364..fe481a0e64ffe6c461a32c21ea37c188abae3122 100644
--- a/arch/arm64/boot/dts/qcom/sar2130p.dtsi
+++ b/arch/arm64/boot/dts/qcom/sar2130p.dtsi
@@ -1828,6 +1828,11 @@ gpucc: clock-controller@3d90000 {
 				 <&gcc GCC_GPU_GPLL0_CLK_SRC>,
 				 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
 
+			power-domains = <&rpmhpd RPMHPD_CX>,
+					<&rpmhpd RPMHPD_MX>,
+					<&rpmhpd RPMHPD_GFX>,
+					<&rpmhpd RPMHPD_MXC>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 10/24] arm64: dts: qcom: sc7180: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (8 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 09/24] arm64: dts: qcom: sar2130p: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 11/24] arm64: dts: qcom: sc7280: " Konrad Dybcio
                   ` (14 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: e07f83544e79 ("arm64: dts: sc7180: Add clock controller nodes")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index 8f827f1d8515d6113c85a2ecacf7ac364e195242..6a914378f8f09c2b037c49cdc29b97568b0314c2 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -2300,6 +2300,11 @@ gpucc: clock-controller@5090000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd SC7180_CX>,
+					<&rpmhpd SC7180_MX>,
+					<&rpmhpd SC7180_GFX>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 11/24] arm64: dts: qcom: sc7280: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (9 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 10/24] arm64: dts: qcom: sc7180: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 12/24] arm64: dts: qcom: sc8180x: " Konrad Dybcio
                   ` (13 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 422a295221bb ("arm64: dts: qcom: sc7280: Add clock controller nodes")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sc7280.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 64a2abd3010018e94eb50c534a509d6b4cf2473b..ad93f2b9162624ac707dbb197e3efc7e909d3add 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -2993,6 +2993,11 @@ gpucc: clock-controller@3d90000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd SC7280_CX>,
+					<&rpmhpd SC7280_MX>,
+					<&rpmhpd SC7280_GFX>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 12/24] arm64: dts: qcom: sc8180x: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (10 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 11/24] arm64: dts: qcom: sc7280: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 13/24] arm64: dts: qcom: sc8280xp: " Konrad Dybcio
                   ` (12 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 494dec9b6f54 ("arm64: dts: qcom: sc8180x: Add display and gpu nodes")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sc8180x.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qcom/sc8180x.dtsi
index f4f1d6a11960c69055d001a34e893e696ae5ce77..47ddf542485a0faf140588e6888cf0cd48dd3110 100644
--- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi
@@ -2366,6 +2366,11 @@ gpucc: clock-controller@2c90000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd SC8180X_CX>,
+					<&rpmhpd SC8180X_MX>,
+					<&rpmhpd SC8180X_GFX>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 13/24] arm64: dts: qcom: sc8280xp: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (11 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 12/24] arm64: dts: qcom: sc8180x: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 14/24] arm64: dts: qcom: sdm670: " Konrad Dybcio
                   ` (11 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: eec51ab2fd6f ("arm64: dts: qcom: sc8280xp: Add GPU related nodes")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
index 87555a119d947dca75415675807f7965b2f203ac..eec0d8d3d30e161d079cfac800c45af638574747 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
@@ -3106,7 +3106,11 @@ gpucc: clock-controller@3d90000 {
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
 
-			power-domains = <&rpmhpd SC8280XP_GFX>;
+			power-domains = <&rpmhpd SC8280XP_CX>,
+					<&rpmhpd SC8280XP_MX>,
+					<&rpmhpd SC8280XP_GFX>,
+					<&rpmhpd SC8280XP_MXC>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 14/24] arm64: dts: qcom: sdm670: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (12 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 13/24] arm64: dts: qcom: sc8280xp: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 15/24] arm64: dts: qcom: sdm845: " Konrad Dybcio
                   ` (10 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: cd89483a1327 ("arm64: dts: qcom: sdm670: add gpu")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sdm670.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
index c33f3de779f6ef457a3336fa4fbe39175c378cce..82356319508615be959443f75c2eacf324691589 100644
--- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
@@ -1521,6 +1521,10 @@ gpucc: clock-controller@5090000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd SDM670_CX>,
+					<&rpmhpd SDM670_MX>,
+					<&rpmhpd SDM670_GFX>;
 		};
 
 		usb_1_hsphy: phy@88e2000 {

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 15/24] arm64: dts: qcom: sdm845: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (13 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 14/24] arm64: dts: qcom: sdm670: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 16/24] arm64: dts: qcom: sm4450: " Konrad Dybcio
                   ` (9 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 9aa4a27ec6b0 ("arm64: dts: sdm845: Add gpu clock controller node")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sdm845.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 828b55cb6baf10458feae8f53c04663ef958601e..7707f397a00730c1f4ec6d75ce87469f8fca9443 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -3405,6 +3405,10 @@ gpucc: clock-controller@5090000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd SDM845_CX>,
+					<&rpmhpd SDM845_MX>,
+					<&rpmhpd SDM845_GFX>;
 		};
 
 		slpi_pas: remoteproc@5c00000 {

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 16/24] arm64: dts: qcom: sm4450: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (14 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 15/24] arm64: dts: qcom: sdm845: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 17/24] arm64: dts: qcom: sm6350: " Konrad Dybcio
                   ` (8 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: b87b8df9c0e4 ("arm64: dts: qcom: sm4450: add camera, display and gpu clock controller")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm4450.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm4450.dtsi b/arch/arm64/boot/dts/qcom/sm4450.dtsi
index d217d922811e84420f0f31008e939337b07bc38b..59d86bccf892bd282cec6e59a60192e4847da6d2 100644
--- a/arch/arm64/boot/dts/qcom/sm4450.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm4450.dtsi
@@ -433,6 +433,10 @@ gpucc: clock-controller@3d90000 {
 			clocks = <&rpmhcc RPMH_CXO_CLK>,
 				 <&gcc GCC_GPU_GPLL0_CLK_SRC>,
 				 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+
+			power-domains = <&rpmhpd RPMHPD_CX>,
+					<&rpmhpd RPMHPD_MX>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 17/24] arm64: dts: qcom: sm6350: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (15 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 16/24] arm64: dts: qcom: sm4450: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 18/24] arm64: dts: qcom: sm8150: " Konrad Dybcio
                   ` (7 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 75a511b1e5ff ("arm64: dts: qcom: sm6350: Add GPUCC node")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm6350.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm6350.dtsi b/arch/arm64/boot/dts/qcom/sm6350.dtsi
index 2d891a5640dead6b60386006bcbbb9aad40a660b..e07131beb47bb9e1e0119713e0efc024725f2cd1 100644
--- a/arch/arm64/boot/dts/qcom/sm6350.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6350.dtsi
@@ -1563,6 +1563,10 @@ gpucc: clock-controller@3d90000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd SM6350_CX>,
+					<&rpmhpd SM6350_MX>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 18/24] arm64: dts: qcom: sm8150: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (16 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 17/24] arm64: dts: qcom: sm6350: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 19/24] arm64: dts: qcom: sm8250: " Konrad Dybcio
                   ` (6 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: f30ac26def18 ("arm64: dts: qcom: add sm8150 GPU nodes")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sa8155p.dtsi | 6 ++++++
 arch/arm64/boot/dts/qcom/sm8150.dtsi  | 4 ++++
 2 files changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sa8155p.dtsi b/arch/arm64/boot/dts/qcom/sa8155p.dtsi
index d678ed822378b54418e4c93787f5678cf4e2a798..40d827b7959dd6a5c5ae72f2e91a0249d8398872 100644
--- a/arch/arm64/boot/dts/qcom/sa8155p.dtsi
+++ b/arch/arm64/boot/dts/qcom/sa8155p.dtsi
@@ -17,6 +17,12 @@ &dispcc {
 	power-domains = <&rpmhpd SA8155P_CX>;
 };
 
+&gpucc {
+	power-domains = <&rpmhpd SA8155P_CX>,
+			<&rpmhpd SA8155P_MX>,
+			<&rpmhpd SA8155P_GFX>;
+};
+
 &mdss_dsi0 {
 	power-domains = <&rpmhpd SA8155P_CX>;
 };
diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi
index abf12e10d33f1ce5c74e3e9136585bcb0a578492..4febadabb3ecf4c76e1733b02b10036c57670b25 100644
--- a/arch/arm64/boot/dts/qcom/sm8150.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi
@@ -2351,6 +2351,10 @@ gpucc: clock-controller@2c90000 {
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;
+
+			power-domains = <&rpmhpd SM8150_CX>,
+					<&rpmhpd SM8150_MX>,
+					<&rpmhpd SM8150_GFX>;
 		};
 
 		adreno_smmu: iommu@2ca0000 {

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 19/24] arm64: dts: qcom: sm8250: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (17 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 18/24] arm64: dts: qcom: sm8150: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 20/24] arm64: dts: qcom: sm8350: " Konrad Dybcio
                   ` (5 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 04a3605b184e ("arm64: dts: qcom: add sm8250 GPU nodes")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8250.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index b0197602c677d49f7833f31d71f72436499bfe84..2e600ee18b58fef6e479f9cab5c2af0324d453cb 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -3044,6 +3044,11 @@ gpucc: clock-controller@3d90000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd RPMHPD_CX>,
+					<&rpmhpd RPMHPD_MX>,
+					<&rpmhpd RPMHPD_GFX>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 20/24] arm64: dts: qcom: sm8350: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (18 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 19/24] arm64: dts: qcom: sm8250: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 21/24] arm64: dts: qcom: sm8450: " Konrad Dybcio
                   ` (4 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 54af0ceb7595 ("arm64: dts: qcom: sm8350: add GPU, GMU, GPU CC and SMMU nodes")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8350.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qcom/sm8350.dtsi
index 9a4207ead6156333b8b6030fb0fbc1d215948041..b8f24a53c66d07ee149aa65f5f8c81a259e1f7ba 100644
--- a/arch/arm64/boot/dts/qcom/sm8350.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8350.dtsi
@@ -2166,6 +2166,12 @@ gpucc: clock-controller@3d90000 {
 			clock-names = "bi_tcxo",
 				      "gcc_gpu_gpll0_clk_src",
 				      "gcc_gpu_gpll0_div_clk_src";
+
+			power-domains = <&rpmhpd RPMHPD_CX>,
+					<&rpmhpd RPMHPD_MX>,
+					<&rpmhpd RPMHPD_GFX>,
+					<&rpmhpd RPMHPD_MXC>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 21/24] arm64: dts: qcom: sm8450: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (19 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 20/24] arm64: dts: qcom: sm8350: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 22/24] arm64: dts: qcom: sm8550: " Konrad Dybcio
                   ` (3 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 9810647a0436 ("arm64: dts: qcom: sm8450: Add GPU nodes")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8450.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
index 33574ad706b915136546c7f92c7cd0b8a0d62b7e..5bec6bb4bf28a7c1356e96ba400ca9c0e182b105 100644
--- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
@@ -2561,6 +2561,12 @@ gpucc: clock-controller@3d90000 {
 			clocks = <&rpmhcc RPMH_CXO_CLK>,
 				 <&gcc GCC_GPU_GPLL0_CLK_SRC>,
 				 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+
+			power-domains = <&rpmhpd RPMHPD_CX>,
+					<&rpmhpd RPMHPD_MX>,
+					<&rpmhpd RPMHPD_GFX>,
+					<&rpmhpd RPMHPD_MXC>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 22/24] arm64: dts: qcom: sm8550: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (20 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 21/24] arm64: dts: qcom: sm8450: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 23/24] arm64: dts: qcom: sm8650: " Konrad Dybcio
                   ` (2 subsequent siblings)
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 9f7579423d2d ("arm64: dts: qcom: sm8550: Add graphics clock controller")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8550.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index 45713d46f3c52487d2638b7ab194c111f58679ce..28eade49526dc9bb0a7b211f96dd350873489029 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -2572,6 +2572,12 @@ gpucc: clock-controller@3d90000 {
 			clocks = <&bi_tcxo_div2>,
 				 <&gcc GCC_GPU_GPLL0_CLK_SRC>,
 				 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+
+			power-domains = <&rpmhpd RPMHPD_CX>,
+					<&rpmhpd RPMHPD_MX>,
+					<&rpmhpd RPMHPD_GFX>,
+					<&rpmhpd RPMHPD_MXC>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 23/24] arm64: dts: qcom: sm8650: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (21 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 22/24] arm64: dts: qcom: sm8550: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 16:16 ` [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: " Konrad Dybcio
  2025-08-19 12:27 ` [RFC PATCH 00/24] GPU_CC power requirements reality check Ulf Hansson
  24 siblings, 0 replies; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: d2350377997f ("arm64: dts: qcom: add initial SM8650 dtsi")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8650.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index e14d3d778b71bbbd0c8fcc851eebc9df9ac09c31..1f1893592a3bbb14ba32c6121e9346018ffc53a3 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -4257,6 +4257,11 @@ gpucc: clock-controller@3d90000 {
 				 <&gcc GCC_GPU_GPLL0_CLK_SRC>,
 				 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
 
+			power-domains = <&rpmhpd RPMHPD_CX>,
+					<&rpmhpd RPMHPD_MX>,
+					<&rpmhpd RPMHPD_GFX>,
+					<&rpmhpd RPMHPD_MXC>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (22 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 23/24] arm64: dts: qcom: sm8650: " Konrad Dybcio
@ 2025-07-28 16:16 ` Konrad Dybcio
  2025-07-28 17:10   ` Stephan Gerhold
  2025-08-19 12:27 ` [RFC PATCH 00/24] GPU_CC power requirements reality check Ulf Hansson
  24 siblings, 1 reply; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 16:16 UTC (permalink / raw)
  To: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Konrad Dybcio,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Andy Gross,
	Ajit Pandey, Luca Weiss, Jonathan Marek, Neil Armstrong,
	Jagadeesh Kona, Akhil P Oommen
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

A number of power rails must be powered on in order for GPU_CC to
function. Ensure that's conveyed to the OS.

Fixes: 721e38301b79 ("arm64: dts: qcom: x1e80100: Add gpu support")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/x1e80100.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..6620517fbb0f3ed715c4901ec53dcbc6235be88f 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
@@ -3928,6 +3928,12 @@ gpucc: clock-controller@3d90000 {
 			clocks = <&bi_tcxo_div2>,
 				 <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
 				 <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
+
+			power-domains = <&rpmhpd RPMHPD_CX>,
+					<&rpmhpd RPMHPD_MX>,
+					<&rpmhpd RPMHPD_GFX>,
+					<&rpmhpd RPMHPD_GMXC>;
+
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;

-- 
2.50.1


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
  2025-07-28 16:16 ` [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: " Konrad Dybcio
@ 2025-07-28 17:10   ` Stephan Gerhold
  2025-07-28 21:31     ` Konrad Dybcio
  0 siblings, 1 reply; 36+ messages in thread
From: Stephan Gerhold @ 2025-07-28 17:10 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Bartosz Golaszewski,
	Dmitry Baryshkov, cros-qcom-dts-watchers, Douglas Anderson,
	Vinod Koul, Richard Acayan, Andy Gross, Ajit Pandey, Luca Weiss,
	Jonathan Marek, Neil Armstrong, Jagadeesh Kona, Akhil P Oommen,
	Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

On Mon, Jul 28, 2025 at 06:16:24PM +0200, Konrad Dybcio wrote:
> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> 
> A number of power rails must be powered on in order for GPU_CC to
> function. Ensure that's conveyed to the OS.
> 
> Fixes: 721e38301b79 ("arm64: dts: qcom: x1e80100: Add gpu support")
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..6620517fbb0f3ed715c4901ec53dcbc6235be88f 100644
> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> @@ -3928,6 +3928,12 @@ gpucc: clock-controller@3d90000 {
>  			clocks = <&bi_tcxo_div2>,
>  				 <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
>  				 <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
> +
> +			power-domains = <&rpmhpd RPMHPD_CX>,
> +					<&rpmhpd RPMHPD_MX>,
> +					<&rpmhpd RPMHPD_GFX>,
> +					<&rpmhpd RPMHPD_GMXC>;
> +
>  			#clock-cells = <1>;
>  			#reset-cells = <1>;
>  			#power-domain-cells = <1>;
> 

To repeat your own message from a couple of months back [1]:

> You shouldn't be messing with VDD_GFX on platforms with a GMU.
>
> Parts of the clock controller are backed by one of the MX rails,
> with some logic depending on CX/GFX, but handling of the latter is
> fully deferred to the GMU firmware.
>
> Konrad

Please describe somewhere in the cover letter or the individual patches
how this relates to the responsibilities of the GMU. I searched for
"GMU" in the patch series and couldn't find any note about this.

Also: How much is a plain "power on" votes (without a corresponding
"required-opps") really worth nowadays? An arbitrary low voltage level
on those rails won't be sufficient to make the GPU_CC actually
"function". Do you need "required-opps" here? In the videocc/camcc case
we have those.

Thanks,
Stephan

[1]: https://lore.kernel.org/linux-arm-msm/2dae7d88-4b3e-452f-9555-05f10b42dabc@oss.qualcomm.com/

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
  2025-07-28 17:10   ` Stephan Gerhold
@ 2025-07-28 21:31     ` Konrad Dybcio
  2025-07-29  6:34       ` Stephan Gerhold
  0 siblings, 1 reply; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-28 21:31 UTC (permalink / raw)
  To: Stephan Gerhold, Konrad Dybcio
  Cc: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Bartosz Golaszewski,
	Dmitry Baryshkov, cros-qcom-dts-watchers, Douglas Anderson,
	Vinod Koul, Richard Acayan, Andy Gross, Ajit Pandey, Luca Weiss,
	Jonathan Marek, Neil Armstrong, Jagadeesh Kona, Akhil P Oommen,
	Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski

On 7/28/25 7:10 PM, Stephan Gerhold wrote:
> On Mon, Jul 28, 2025 at 06:16:24PM +0200, Konrad Dybcio wrote:
>> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>
>> A number of power rails must be powered on in order for GPU_CC to
>> function. Ensure that's conveyed to the OS.
>>
>> Fixes: 721e38301b79 ("arm64: dts: qcom: x1e80100: Add gpu support")
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>> ---
>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..6620517fbb0f3ed715c4901ec53dcbc6235be88f 100644
>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> @@ -3928,6 +3928,12 @@ gpucc: clock-controller@3d90000 {
>>  			clocks = <&bi_tcxo_div2>,
>>  				 <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
>>  				 <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
>> +
>> +			power-domains = <&rpmhpd RPMHPD_CX>,
>> +					<&rpmhpd RPMHPD_MX>,
>> +					<&rpmhpd RPMHPD_GFX>,
>> +					<&rpmhpd RPMHPD_GMXC>;
>> +
>>  			#clock-cells = <1>;
>>  			#reset-cells = <1>;
>>  			#power-domain-cells = <1>;
>>
> 
> To repeat your own message from a couple of months back [1]:
> 
>> You shouldn't be messing with VDD_GFX on platforms with a GMU.
>>
>> Parts of the clock controller are backed by one of the MX rails,
>> with some logic depending on CX/GFX, but handling of the latter is
>> fully deferred to the GMU firmware.
>>
>> Konrad
> 
> Please describe somewhere in the cover letter or the individual patches
> how this relates to the responsibilities of the GMU. I searched for
> "GMU" in the patch series and couldn't find any note about this.
> 
> Also: How much is a plain "power on" votes (without a corresponding
> "required-opps") really worth nowadays? An arbitrary low voltage level
> on those rails won't be sufficient to make the GPU_CC actually
> "function". Do you need "required-opps" here? In the videocc/camcc case
> we have those.

Right, I failed to capture this.

The GFX rail should be powered on before unclamping the GX_GDSC (as
per the programming guide). The clock controller HPG however doesn't
seem to have a concept of RPMh, so it says something that amounts to
"tell the PMIC to supply power on this rail". In Linux, since Commit
e3e56c050ab6 ("soc: qcom: rpmhpd: Make power_on actually enable the
domain") we don't really need a defined level for this (perhaps it's
more ""portable"" across potential fuse-bins if we don't hardcode the
lowest level anyway?).

However after that happens, the level scaling is done by the GMU
firmware. This holds for allOf CX/MX/GFX. I'm not super sure if
both MX and (G)MXC need to both be captured together - downstream
seems to describe MXC as a child of MX (in socname-regulators.dtsi),
but I'm not really sure this is true in hardware.

The GPU driver currently first enables the GX_GDSC and only then
does it kickstart the GMU firmware. Downstream seems to do that as
well. So on a second thought, since we've not seen any errors so
far, it calls into question what role the GFX rail plays in the
GX_GDSC's powering up..

Furthermore, this assumes that the OS is aware when the GPU is in
use, meaning VDD_GFX would be on when GPU(_CC) would be resumed, but
with IFPC or hwsched, we have 2 corner cases:

1) GPU is on but the OS doesn't know that
   (which is fine because by the time the GPU is on, the GMU has
   taken over)

2) GPU wants to be off, but the OS holds an RPMh vote

I *think* 2 shouldn't be an issue either, as downstream does
precisely this, and if it turns out to be a problem down the line,
it'd still be something to sort out on the C side.

LMK your thoughts

Konrad

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
  2025-07-28 21:31     ` Konrad Dybcio
@ 2025-07-29  6:34       ` Stephan Gerhold
  2025-07-29  8:23         ` Konrad Dybcio
  0 siblings, 1 reply; 36+ messages in thread
From: Stephan Gerhold @ 2025-07-29  6:34 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Konrad Dybcio, Ulf Hansson, Johan Hovold, Bjorn Andersson,
	Taniya Das, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Taniya Das, Imran Shaik,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Ajit Pandey,
	Luca Weiss, Jonathan Marek, Neil Armstrong, Jagadeesh Kona,
	Akhil P Oommen, Marijn Suijten, linux-arm-msm, linux-pm,
	linux-kernel, linux-clk, devicetree, Krzysztof Kozlowski

On Mon, Jul 28, 2025 at 11:31:10PM +0200, Konrad Dybcio wrote:
> On 7/28/25 7:10 PM, Stephan Gerhold wrote:
> > On Mon, Jul 28, 2025 at 06:16:24PM +0200, Konrad Dybcio wrote:
> >> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> >>
> >> A number of power rails must be powered on in order for GPU_CC to
> >> function. Ensure that's conveyed to the OS.
> >>
> >> Fixes: 721e38301b79 ("arm64: dts: qcom: x1e80100: Add gpu support")
> >> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> >> ---
> >>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 6 ++++++
> >>  1 file changed, 6 insertions(+)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >> index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..6620517fbb0f3ed715c4901ec53dcbc6235be88f 100644
> >> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >> @@ -3928,6 +3928,12 @@ gpucc: clock-controller@3d90000 {
> >>  			clocks = <&bi_tcxo_div2>,
> >>  				 <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
> >>  				 <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
> >> +
> >> +			power-domains = <&rpmhpd RPMHPD_CX>,
> >> +					<&rpmhpd RPMHPD_MX>,
> >> +					<&rpmhpd RPMHPD_GFX>,
> >> +					<&rpmhpd RPMHPD_GMXC>;
> >> +
> >>  			#clock-cells = <1>;
> >>  			#reset-cells = <1>;
> >>  			#power-domain-cells = <1>;
> >>
> > 
> > To repeat your own message from a couple of months back [1]:
> > 
> >> You shouldn't be messing with VDD_GFX on platforms with a GMU.
> >>
> >> Parts of the clock controller are backed by one of the MX rails,
> >> with some logic depending on CX/GFX, but handling of the latter is
> >> fully deferred to the GMU firmware.
> >>
> >> Konrad
> > 
> > Please describe somewhere in the cover letter or the individual patches
> > how this relates to the responsibilities of the GMU. I searched for
> > "GMU" in the patch series and couldn't find any note about this.
> > 
> > Also: How much is a plain "power on" votes (without a corresponding
> > "required-opps") really worth nowadays? An arbitrary low voltage level
> > on those rails won't be sufficient to make the GPU_CC actually
> > "function". Do you need "required-opps" here? In the videocc/camcc case
> > we have those.
> 
> Right, I failed to capture this.
> 
> The GFX rail should be powered on before unclamping the GX_GDSC (as
> per the programming guide). The clock controller HPG however doesn't
> seem to have a concept of RPMh, so it says something that amounts to
> "tell the PMIC to supply power on this rail". In Linux, since Commit
> e3e56c050ab6 ("soc: qcom: rpmhpd: Make power_on actually enable the
> domain") we don't really need a defined level for this (perhaps it's
> more ""portable"" across potential fuse-bins if we don't hardcode the
> lowest level anyway?).

Thanks, I forgot that we have this commit.

> 
> However after that happens, the level scaling is done by the GMU
> firmware. This holds for allOf CX/MX/GFX. I'm not super sure if
> both MX and (G)MXC need to both be captured together - downstream
> seems to describe MXC as a child of MX (in socname-regulators.dtsi),
> but I'm not really sure this is true in hardware.
> 
> The GPU driver currently first enables the GX_GDSC and only then
> does it kickstart the GMU firmware. Downstream seems to do that as
> well. So on a second thought, since we've not seen any errors so
> far, it calls into question what role the GFX rail plays in the
> GX_GDSC's powering up..
> 

It might play a role, but we wouldn't know since AFAICT we don't support
enabling the GX_GDSC. Look at the beautiful gdsc_gx_do_nothing_enable()
function, it basically just defers the entire task to the GMU. The GDSC
just exists in Linux so we can turn it *off* during GMU crashes. :D

I think we should identify precisely which votes we are missing, instead
of making blanket votes for all the power rails somehow related to the
GPU. In this case this means: Which rails do we need to vote for to make
the GMU turn on? If there are no votes necessary after the GMU is on,
it's better to have none IMO.

Thanks,
Stephan

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
  2025-07-29  6:34       ` Stephan Gerhold
@ 2025-07-29  8:23         ` Konrad Dybcio
  2025-07-29 13:28           ` Konrad Dybcio
  0 siblings, 1 reply; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-29  8:23 UTC (permalink / raw)
  To: Stephan Gerhold
  Cc: Konrad Dybcio, Ulf Hansson, Johan Hovold, Bjorn Andersson,
	Taniya Das, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Taniya Das, Imran Shaik,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Ajit Pandey,
	Luca Weiss, Jonathan Marek, Neil Armstrong, Jagadeesh Kona,
	Akhil P Oommen, Marijn Suijten, linux-arm-msm, linux-pm,
	linux-kernel, linux-clk, devicetree, Krzysztof Kozlowski

On 7/29/25 8:34 AM, Stephan Gerhold wrote:
> On Mon, Jul 28, 2025 at 11:31:10PM +0200, Konrad Dybcio wrote:
>> On 7/28/25 7:10 PM, Stephan Gerhold wrote:
>>> On Mon, Jul 28, 2025 at 06:16:24PM +0200, Konrad Dybcio wrote:
>>>> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>>>
>>>> A number of power rails must be powered on in order for GPU_CC to
>>>> function. Ensure that's conveyed to the OS.
>>>>
>>>> Fixes: 721e38301b79 ("arm64: dts: qcom: x1e80100: Add gpu support")
>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>>> ---
>>>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 6 ++++++
>>>>  1 file changed, 6 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>> index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..6620517fbb0f3ed715c4901ec53dcbc6235be88f 100644
>>>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>> @@ -3928,6 +3928,12 @@ gpucc: clock-controller@3d90000 {
>>>>  			clocks = <&bi_tcxo_div2>,
>>>>  				 <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
>>>>  				 <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
>>>> +
>>>> +			power-domains = <&rpmhpd RPMHPD_CX>,
>>>> +					<&rpmhpd RPMHPD_MX>,
>>>> +					<&rpmhpd RPMHPD_GFX>,
>>>> +					<&rpmhpd RPMHPD_GMXC>;
>>>> +
>>>>  			#clock-cells = <1>;
>>>>  			#reset-cells = <1>;
>>>>  			#power-domain-cells = <1>;
>>>>
>>>
>>> To repeat your own message from a couple of months back [1]:
>>>
>>>> You shouldn't be messing with VDD_GFX on platforms with a GMU.
>>>>
>>>> Parts of the clock controller are backed by one of the MX rails,
>>>> with some logic depending on CX/GFX, but handling of the latter is
>>>> fully deferred to the GMU firmware.
>>>>
>>>> Konrad
>>>
>>> Please describe somewhere in the cover letter or the individual patches
>>> how this relates to the responsibilities of the GMU. I searched for
>>> "GMU" in the patch series and couldn't find any note about this.
>>>
>>> Also: How much is a plain "power on" votes (without a corresponding
>>> "required-opps") really worth nowadays? An arbitrary low voltage level
>>> on those rails won't be sufficient to make the GPU_CC actually
>>> "function". Do you need "required-opps" here? In the videocc/camcc case
>>> we have those.
>>
>> Right, I failed to capture this.
>>
>> The GFX rail should be powered on before unclamping the GX_GDSC (as
>> per the programming guide). The clock controller HPG however doesn't
>> seem to have a concept of RPMh, so it says something that amounts to
>> "tell the PMIC to supply power on this rail". In Linux, since Commit
>> e3e56c050ab6 ("soc: qcom: rpmhpd: Make power_on actually enable the
>> domain") we don't really need a defined level for this (perhaps it's
>> more ""portable"" across potential fuse-bins if we don't hardcode the
>> lowest level anyway?).
> 
> Thanks, I forgot that we have this commit.
> 
>>
>> However after that happens, the level scaling is done by the GMU
>> firmware. This holds for allOf CX/MX/GFX. I'm not super sure if
>> both MX and (G)MXC need to both be captured together - downstream
>> seems to describe MXC as a child of MX (in socname-regulators.dtsi),
>> but I'm not really sure this is true in hardware.
>>
>> The GPU driver currently first enables the GX_GDSC and only then
>> does it kickstart the GMU firmware. Downstream seems to do that as
>> well. So on a second thought, since we've not seen any errors so
>> far, it calls into question what role the GFX rail plays in the
>> GX_GDSC's powering up..
>>
> 
> It might play a role, but we wouldn't know since AFAICT we don't support
> enabling the GX_GDSC. Look at the beautiful gdsc_gx_do_nothing_enable()
> function, it basically just defers the entire task to the GMU. The GDSC
> just exists in Linux so we can turn it *off* during GMU crashes. :D

OHHHHH snap! I, on the other hand, forgot we have *that* commit..

> I think we should identify precisely which votes we are missing, instead
> of making blanket votes for all the power rails somehow related to the
> GPU. In this case this means: Which rails do we need to vote for to make
> the GMU turn on? If there are no votes necessary after the GMU is on,
> it's better to have none IMO.

The GMU pokes at RPMh directly (see a6xx_hfi.c), so we indeed just
need to make sure that it can turn on.. Which in short means the
*C*X_GDSC must be able to power up, which doesn't have any special
requirements. The only question that's left is basically whether
MX_C must be on. I'll try testing that in practice.

Konrad

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
  2025-07-29  8:23         ` Konrad Dybcio
@ 2025-07-29 13:28           ` Konrad Dybcio
  2025-07-29 15:44             ` Stephan Gerhold
  0 siblings, 1 reply; 36+ messages in thread
From: Konrad Dybcio @ 2025-07-29 13:28 UTC (permalink / raw)
  To: Stephan Gerhold
  Cc: Konrad Dybcio, Ulf Hansson, Johan Hovold, Bjorn Andersson,
	Taniya Das, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Taniya Das, Imran Shaik,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Ajit Pandey,
	Luca Weiss, Jonathan Marek, Neil Armstrong, Jagadeesh Kona,
	Akhil P Oommen, Marijn Suijten, linux-arm-msm, linux-pm,
	linux-kernel, linux-clk, devicetree, Krzysztof Kozlowski

On 7/29/25 10:23 AM, Konrad Dybcio wrote:
> On 7/29/25 8:34 AM, Stephan Gerhold wrote:
>> On Mon, Jul 28, 2025 at 11:31:10PM +0200, Konrad Dybcio wrote:
>>> On 7/28/25 7:10 PM, Stephan Gerhold wrote:
>>>> On Mon, Jul 28, 2025 at 06:16:24PM +0200, Konrad Dybcio wrote:
>>>>> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>>>>
>>>>> A number of power rails must be powered on in order for GPU_CC to
>>>>> function. Ensure that's conveyed to the OS.
>>>>>
>>>>> Fixes: 721e38301b79 ("arm64: dts: qcom: x1e80100: Add gpu support")
>>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>>>> ---
>>>>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 6 ++++++
>>>>>  1 file changed, 6 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>> index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..6620517fbb0f3ed715c4901ec53dcbc6235be88f 100644
>>>>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>> @@ -3928,6 +3928,12 @@ gpucc: clock-controller@3d90000 {
>>>>>  			clocks = <&bi_tcxo_div2>,
>>>>>  				 <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
>>>>>  				 <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
>>>>> +
>>>>> +			power-domains = <&rpmhpd RPMHPD_CX>,
>>>>> +					<&rpmhpd RPMHPD_MX>,
>>>>> +					<&rpmhpd RPMHPD_GFX>,
>>>>> +					<&rpmhpd RPMHPD_GMXC>;
>>>>> +
>>>>>  			#clock-cells = <1>;
>>>>>  			#reset-cells = <1>;
>>>>>  			#power-domain-cells = <1>;
>>>>>
>>>>
>>>> To repeat your own message from a couple of months back [1]:
>>>>
>>>>> You shouldn't be messing with VDD_GFX on platforms with a GMU.
>>>>>
>>>>> Parts of the clock controller are backed by one of the MX rails,
>>>>> with some logic depending on CX/GFX, but handling of the latter is
>>>>> fully deferred to the GMU firmware.
>>>>>
>>>>> Konrad
>>>>
>>>> Please describe somewhere in the cover letter or the individual patches
>>>> how this relates to the responsibilities of the GMU. I searched for
>>>> "GMU" in the patch series and couldn't find any note about this.
>>>>
>>>> Also: How much is a plain "power on" votes (without a corresponding
>>>> "required-opps") really worth nowadays? An arbitrary low voltage level
>>>> on those rails won't be sufficient to make the GPU_CC actually
>>>> "function". Do you need "required-opps" here? In the videocc/camcc case
>>>> we have those.
>>>
>>> Right, I failed to capture this.
>>>
>>> The GFX rail should be powered on before unclamping the GX_GDSC (as
>>> per the programming guide). The clock controller HPG however doesn't
>>> seem to have a concept of RPMh, so it says something that amounts to
>>> "tell the PMIC to supply power on this rail". In Linux, since Commit
>>> e3e56c050ab6 ("soc: qcom: rpmhpd: Make power_on actually enable the
>>> domain") we don't really need a defined level for this (perhaps it's
>>> more ""portable"" across potential fuse-bins if we don't hardcode the
>>> lowest level anyway?).
>>
>> Thanks, I forgot that we have this commit.
>>
>>>
>>> However after that happens, the level scaling is done by the GMU
>>> firmware. This holds for allOf CX/MX/GFX. I'm not super sure if
>>> both MX and (G)MXC need to both be captured together - downstream
>>> seems to describe MXC as a child of MX (in socname-regulators.dtsi),
>>> but I'm not really sure this is true in hardware.
>>>
>>> The GPU driver currently first enables the GX_GDSC and only then
>>> does it kickstart the GMU firmware. Downstream seems to do that as
>>> well. So on a second thought, since we've not seen any errors so
>>> far, it calls into question what role the GFX rail plays in the
>>> GX_GDSC's powering up..
>>>
>>
>> It might play a role, but we wouldn't know since AFAICT we don't support
>> enabling the GX_GDSC. Look at the beautiful gdsc_gx_do_nothing_enable()
>> function, it basically just defers the entire task to the GMU. The GDSC
>> just exists in Linux so we can turn it *off* during GMU crashes. :D
> 
> OHHHHH snap! I, on the other hand, forgot we have *that* commit..
> 
>> I think we should identify precisely which votes we are missing, instead
>> of making blanket votes for all the power rails somehow related to the
>> GPU. In this case this means: Which rails do we need to vote for to make
>> the GMU turn on? If there are no votes necessary after the GMU is on,
>> it's better to have none IMO.
> 
> The GMU pokes at RPMh directly (see a6xx_hfi.c), so we indeed just
> need to make sure that it can turn on.. Which in short means the
> *C*X_GDSC must be able to power up, which doesn't have any special
> requirements. The only question that's left is basically whether
> MX_C must be on. I'll try testing that in practice.

So this is apparently difficult, at least on SC8280XP, where something
seems to be voting on MXC and it only seems to shut down when entering
CXPC. I would imagine/hope this is not the case on newer platforms, but
I don't have a way to fully confirm this at the moment..

Konrad

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
  2025-07-29 13:28           ` Konrad Dybcio
@ 2025-07-29 15:44             ` Stephan Gerhold
  2025-07-29 22:08               ` Akhil P Oommen
  0 siblings, 1 reply; 36+ messages in thread
From: Stephan Gerhold @ 2025-07-29 15:44 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Konrad Dybcio, Ulf Hansson, Johan Hovold, Bjorn Andersson,
	Taniya Das, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Taniya Das, Imran Shaik,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Ajit Pandey,
	Luca Weiss, Jonathan Marek, Neil Armstrong, Jagadeesh Kona,
	Akhil P Oommen, Marijn Suijten, linux-arm-msm, linux-pm,
	linux-kernel, linux-clk, devicetree, Krzysztof Kozlowski

On Tue, Jul 29, 2025 at 03:28:55PM +0200, Konrad Dybcio wrote:
> On 7/29/25 10:23 AM, Konrad Dybcio wrote:
> > On 7/29/25 8:34 AM, Stephan Gerhold wrote:
> >> On Mon, Jul 28, 2025 at 11:31:10PM +0200, Konrad Dybcio wrote:
> >>> On 7/28/25 7:10 PM, Stephan Gerhold wrote:
> >>>> On Mon, Jul 28, 2025 at 06:16:24PM +0200, Konrad Dybcio wrote:
> >>>>> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> >>>>>
> >>>>> A number of power rails must be powered on in order for GPU_CC to
> >>>>> function. Ensure that's conveyed to the OS.
> >>>>>
> >>>>> Fixes: 721e38301b79 ("arm64: dts: qcom: x1e80100: Add gpu support")
> >>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> >>>>> ---
> >>>>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 6 ++++++
> >>>>>  1 file changed, 6 insertions(+)
> >>>>>
> >>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >>>>> index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..6620517fbb0f3ed715c4901ec53dcbc6235be88f 100644
> >>>>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >>>>> @@ -3928,6 +3928,12 @@ gpucc: clock-controller@3d90000 {
> >>>>>  			clocks = <&bi_tcxo_div2>,
> >>>>>  				 <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
> >>>>>  				 <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
> >>>>> +
> >>>>> +			power-domains = <&rpmhpd RPMHPD_CX>,
> >>>>> +					<&rpmhpd RPMHPD_MX>,
> >>>>> +					<&rpmhpd RPMHPD_GFX>,
> >>>>> +					<&rpmhpd RPMHPD_GMXC>;
> >>>>> +
> >>>>>  			#clock-cells = <1>;
> >>>>>  			#reset-cells = <1>;
> >>>>>  			#power-domain-cells = <1>;
> >>>>>
> >>>>
> >>>> To repeat your own message from a couple of months back [1]:
> >>>>
> >>>>> You shouldn't be messing with VDD_GFX on platforms with a GMU.
> >>>>>
> >>>>> Parts of the clock controller are backed by one of the MX rails,
> >>>>> with some logic depending on CX/GFX, but handling of the latter is
> >>>>> fully deferred to the GMU firmware.
> >>>>>
> >>>>> Konrad
> >>>>
> >>>> Please describe somewhere in the cover letter or the individual patches
> >>>> how this relates to the responsibilities of the GMU. I searched for
> >>>> "GMU" in the patch series and couldn't find any note about this.
> >>>>
> >>>> Also: How much is a plain "power on" votes (without a corresponding
> >>>> "required-opps") really worth nowadays? An arbitrary low voltage level
> >>>> on those rails won't be sufficient to make the GPU_CC actually
> >>>> "function". Do you need "required-opps" here? In the videocc/camcc case
> >>>> we have those.
> >>>
> >>> Right, I failed to capture this.
> >>>
> >>> The GFX rail should be powered on before unclamping the GX_GDSC (as
> >>> per the programming guide). The clock controller HPG however doesn't
> >>> seem to have a concept of RPMh, so it says something that amounts to
> >>> "tell the PMIC to supply power on this rail". In Linux, since Commit
> >>> e3e56c050ab6 ("soc: qcom: rpmhpd: Make power_on actually enable the
> >>> domain") we don't really need a defined level for this (perhaps it's
> >>> more ""portable"" across potential fuse-bins if we don't hardcode the
> >>> lowest level anyway?).
> >>
> >> Thanks, I forgot that we have this commit.
> >>
> >>>
> >>> However after that happens, the level scaling is done by the GMU
> >>> firmware. This holds for allOf CX/MX/GFX. I'm not super sure if
> >>> both MX and (G)MXC need to both be captured together - downstream
> >>> seems to describe MXC as a child of MX (in socname-regulators.dtsi),
> >>> but I'm not really sure this is true in hardware.
> >>>
> >>> The GPU driver currently first enables the GX_GDSC and only then
> >>> does it kickstart the GMU firmware. Downstream seems to do that as
> >>> well. So on a second thought, since we've not seen any errors so
> >>> far, it calls into question what role the GFX rail plays in the
> >>> GX_GDSC's powering up..
> >>>
> >>
> >> It might play a role, but we wouldn't know since AFAICT we don't support
> >> enabling the GX_GDSC. Look at the beautiful gdsc_gx_do_nothing_enable()
> >> function, it basically just defers the entire task to the GMU. The GDSC
> >> just exists in Linux so we can turn it *off* during GMU crashes. :D
> > 
> > OHHHHH snap! I, on the other hand, forgot we have *that* commit..
> > 
> >> I think we should identify precisely which votes we are missing, instead
> >> of making blanket votes for all the power rails somehow related to the
> >> GPU. In this case this means: Which rails do we need to vote for to make
> >> the GMU turn on? If there are no votes necessary after the GMU is on,
> >> it's better to have none IMO.
> > 
> > The GMU pokes at RPMh directly (see a6xx_hfi.c), so we indeed just
> > need to make sure that it can turn on.. Which in short means the
> > *C*X_GDSC must be able to power up, which doesn't have any special
> > requirements. The only question that's left is basically whether
> > MX_C must be on. I'll try testing that in practice.
> 
> So this is apparently difficult, at least on SC8280XP, where something
> seems to be voting on MXC and it only seems to shut down when entering
> CXPC. I would imagine/hope this is not the case on newer platforms, but
> I don't have a way to fully confirm this at the moment..
> 

If in doubt, I would suggest to leave everything as-is for now until
someone actually runs into an issue caused by this (if this is even
possible). There are plenty other actual gaps to address. ;)

Stephan

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
  2025-07-29 15:44             ` Stephan Gerhold
@ 2025-07-29 22:08               ` Akhil P Oommen
  0 siblings, 0 replies; 36+ messages in thread
From: Akhil P Oommen @ 2025-07-29 22:08 UTC (permalink / raw)
  To: Stephan Gerhold, Konrad Dybcio
  Cc: Konrad Dybcio, Ulf Hansson, Johan Hovold, Bjorn Andersson,
	Taniya Das, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Taniya Das, Imran Shaik,
	Bartosz Golaszewski, Dmitry Baryshkov, cros-qcom-dts-watchers,
	Douglas Anderson, Vinod Koul, Richard Acayan, Ajit Pandey,
	Luca Weiss, Jonathan Marek, Neil Armstrong, Jagadeesh Kona,
	Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski

On 7/29/2025 9:14 PM, Stephan Gerhold wrote:
> On Tue, Jul 29, 2025 at 03:28:55PM +0200, Konrad Dybcio wrote:
>> On 7/29/25 10:23 AM, Konrad Dybcio wrote:
>>> On 7/29/25 8:34 AM, Stephan Gerhold wrote:
>>>> On Mon, Jul 28, 2025 at 11:31:10PM +0200, Konrad Dybcio wrote:
>>>>> On 7/28/25 7:10 PM, Stephan Gerhold wrote:
>>>>>> On Mon, Jul 28, 2025 at 06:16:24PM +0200, Konrad Dybcio wrote:
>>>>>>> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>>>>>>
>>>>>>> A number of power rails must be powered on in order for GPU_CC to
>>>>>>> function. Ensure that's conveyed to the OS.
>>>>>>>
>>>>>>> Fixes: 721e38301b79 ("arm64: dts: qcom: x1e80100: Add gpu support")
>>>>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>>>>>> ---
>>>>>>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 6 ++++++
>>>>>>>  1 file changed, 6 insertions(+)
>>>>>>>
>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>>>> index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..6620517fbb0f3ed715c4901ec53dcbc6235be88f 100644
>>>>>>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>>>> @@ -3928,6 +3928,12 @@ gpucc: clock-controller@3d90000 {
>>>>>>>  			clocks = <&bi_tcxo_div2>,
>>>>>>>  				 <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
>>>>>>>  				 <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
>>>>>>> +
>>>>>>> +			power-domains = <&rpmhpd RPMHPD_CX>,
>>>>>>> +					<&rpmhpd RPMHPD_MX>,
>>>>>>> +					<&rpmhpd RPMHPD_GFX>,
>>>>>>> +					<&rpmhpd RPMHPD_GMXC>;
>>>>>>> +
>>>>>>>  			#clock-cells = <1>;
>>>>>>>  			#reset-cells = <1>;
>>>>>>>  			#power-domain-cells = <1>;
>>>>>>>
>>>>>>
>>>>>> To repeat your own message from a couple of months back [1]:
>>>>>>
>>>>>>> You shouldn't be messing with VDD_GFX on platforms with a GMU.
>>>>>>>
>>>>>>> Parts of the clock controller are backed by one of the MX rails,
>>>>>>> with some logic depending on CX/GFX, but handling of the latter is
>>>>>>> fully deferred to the GMU firmware.
>>>>>>>
>>>>>>> Konrad
>>>>>>
>>>>>> Please describe somewhere in the cover letter or the individual patches
>>>>>> how this relates to the responsibilities of the GMU. I searched for
>>>>>> "GMU" in the patch series and couldn't find any note about this.
>>>>>>
>>>>>> Also: How much is a plain "power on" votes (without a corresponding
>>>>>> "required-opps") really worth nowadays? An arbitrary low voltage level
>>>>>> on those rails won't be sufficient to make the GPU_CC actually
>>>>>> "function". Do you need "required-opps" here? In the videocc/camcc case
>>>>>> we have those.
>>>>>
>>>>> Right, I failed to capture this.
>>>>>
>>>>> The GFX rail should be powered on before unclamping the GX_GDSC (as
>>>>> per the programming guide). The clock controller HPG however doesn't
>>>>> seem to have a concept of RPMh, so it says something that amounts to
>>>>> "tell the PMIC to supply power on this rail". In Linux, since Commit
>>>>> e3e56c050ab6 ("soc: qcom: rpmhpd: Make power_on actually enable the
>>>>> domain") we don't really need a defined level for this (perhaps it's
>>>>> more ""portable"" across potential fuse-bins if we don't hardcode the
>>>>> lowest level anyway?).
>>>>
>>>> Thanks, I forgot that we have this commit.
>>>>
>>>>>
>>>>> However after that happens, the level scaling is done by the GMU
>>>>> firmware. This holds for allOf CX/MX/GFX. I'm not super sure if
>>>>> both MX and (G)MXC need to both be captured together - downstream
>>>>> seems to describe MXC as a child of MX (in socname-regulators.dtsi),
>>>>> but I'm not really sure this is true in hardware.
>>>>>
>>>>> The GPU driver currently first enables the GX_GDSC and only then
>>>>> does it kickstart the GMU firmware. Downstream seems to do that as
>>>>> well. So on a second thought, since we've not seen any errors so
>>>>> far, it calls into question what role the GFX rail plays in the
>>>>> GX_GDSC's powering up..
>>>>>
>>>>
>>>> It might play a role, but we wouldn't know since AFAICT we don't support
>>>> enabling the GX_GDSC. Look at the beautiful gdsc_gx_do_nothing_enable()
>>>> function, it basically just defers the entire task to the GMU. The GDSC
>>>> just exists in Linux so we can turn it *off* during GMU crashes. :D
>>>
>>> OHHHHH snap! I, on the other hand, forgot we have *that* commit..
>>>
>>>> I think we should identify precisely which votes we are missing, instead
>>>> of making blanket votes for all the power rails somehow related to the
>>>> GPU. In this case this means: Which rails do we need to vote for to make
>>>> the GMU turn on? If there are no votes necessary after the GMU is on,
>>>> it's better to have none IMO.
>>>
>>> The GMU pokes at RPMh directly (see a6xx_hfi.c), so we indeed just
>>> need to make sure that it can turn on.. Which in short means the
>>> *C*X_GDSC must be able to power up, which doesn't have any special
>>> requirements. The only question that's left is basically whether
>>> MX_C must be on. I'll try testing that in practice.
>>
>> So this is apparently difficult, at least on SC8280XP, where something
>> seems to be voting on MXC and it only seems to shut down when entering
>> CXPC. I would imagine/hope this is not the case on newer platforms, but
>> I don't have a way to fully confirm this at the moment..
>>
> 
> If in doubt, I would suggest to leave everything as-is for now until
> someone actually runs into an issue caused by this (if this is even
> possible). There are plenty other actual gaps to address. ;)

Konrad,

GMU is allowed to collapse some of the rails in some cases (GX/MXC/GXMXC
etc). So there should not be any other vote for these resources on
behalf of GPU/GMU from the KMD side. You may have to vote some resources
for GPUCC block itself (I know it is in AO domain, but still). I don't
know the specifics. Can you reach out to QC clk team (Taniya/Jagadeesh
etc) for necessary details? We should be careful here. Just boot up
testing is not sufficient when it comes to clk/power.

-Akhil.

> 
> Stephan


^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 01/24] dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO
  2025-07-28 16:16 ` [PATCH RFC 01/24] dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO Konrad Dybcio
@ 2025-07-30 22:01   ` Rob Herring (Arm)
  0 siblings, 0 replies; 36+ messages in thread
From: Rob Herring (Arm) @ 2025-07-30 22:01 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Andy Gross, Jonathan Marek, Dmitry Baryshkov, Marijn Suijten,
	Vinod Koul, cros-qcom-dts-watchers, Taniya Das, Johan Hovold,
	Ajit Pandey, Bartosz Golaszewski, linux-clk, Akhil P Oommen,
	Neil Armstrong, linux-kernel, Konrad Dybcio, Michael Turquette,
	Douglas Anderson, Jagadeesh Kona, Luca Weiss, Imran Shaik,
	Bjorn Andersson, Stephen Boyd, Krzysztof Kozlowski, linux-pm,
	Conor Dooley, Richard Acayan, devicetree, Taniya Das, Ulf Hansson,
	Krzysztof Kozlowski, linux-arm-msm


On Mon, 28 Jul 2025 18:16:01 +0200, Konrad Dybcio wrote:
> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> 
> Not sure how useful it's gonna be in practice, but the definition is
> missing (unlike the previously-unused SC8280XP_MXC-non-_AO), so add it
> to allow the driver to create the corresponding pmdomain.
> 
> Fixes: dbfb5f94e084 ("dt-bindings: power: rpmpd: Add sc8280xp RPMh power-domains")
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
>  include/dt-bindings/power/qcom-rpmpd.h | 1 +
>  1 file changed, 1 insertion(+)
> 

Acked-by: Rob Herring (Arm) <robh@kernel.org>


^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 03/24] dt-bindings: clock: qcom,gpucc: Merge in sm8450-gpucc.yaml
  2025-07-28 16:16 ` [PATCH RFC 03/24] dt-bindings: clock: qcom,gpucc: Merge in sm8450-gpucc.yaml Konrad Dybcio
@ 2025-07-30 22:04   ` Rob Herring (Arm)
  0 siblings, 0 replies; 36+ messages in thread
From: Rob Herring (Arm) @ 2025-07-30 22:04 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: linux-clk, Taniya Das, Dmitry Baryshkov, linux-arm-msm,
	Andy Gross, linux-kernel, Luca Weiss, Michael Turquette,
	Bartosz Golaszewski, Marijn Suijten, Ulf Hansson, Bjorn Andersson,
	Richard Acayan, Krzysztof Kozlowski, Taniya Das, Neil Armstrong,
	Stephen Boyd, Conor Dooley, Imran Shaik, Johan Hovold,
	Jonathan Marek, devicetree, linux-pm, Konrad Dybcio,
	Douglas Anderson, Ajit Pandey, Jagadeesh Kona,
	Krzysztof Kozlowski, cros-qcom-dts-watchers, Akhil P Oommen,
	Vinod Koul


On Mon, 28 Jul 2025 18:16:03 +0200, Konrad Dybcio wrote:
> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> 
> The only difference is the requirement of clock-names, and only for
> legacy reasons.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
>  .../devicetree/bindings/clock/qcom,gpucc.yaml      | 42 +++++++++++-
>  .../bindings/clock/qcom,sm8450-gpucc.yaml          | 75 ----------------------
>  2 files changed, 39 insertions(+), 78 deletions(-)
> 

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>


^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH RFC 02/24] pmdomain: qcom: rpmhpd: Add MXC to SC8280XP
  2025-07-28 16:16 ` [PATCH RFC 02/24] pmdomain: qcom: rpmhpd: Add MXC to SC8280XP Konrad Dybcio
@ 2025-07-31 20:31   ` Dmitry Baryshkov
  0 siblings, 0 replies; 36+ messages in thread
From: Dmitry Baryshkov @ 2025-07-31 20:31 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Ulf Hansson, Johan Hovold, Bjorn Andersson, Taniya Das,
	Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Taniya Das, Imran Shaik, Bartosz Golaszewski,
	Dmitry Baryshkov, cros-qcom-dts-watchers, Douglas Anderson,
	Vinod Koul, Richard Acayan, Andy Gross, Ajit Pandey, Luca Weiss,
	Jonathan Marek, Neil Armstrong, Jagadeesh Kona, Akhil P Oommen,
	Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

On Mon, Jul 28, 2025 at 06:16:02PM +0200, Konrad Dybcio wrote:
> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> 
> This was apparently accounted for in dt-bindings, but never made its
> way into the driver.
> 
> Fix it for SC8280XP and its VDD_GFX-less cousin, SA8540P.
> 
> Fixes: f68f1cb3437d ("soc: qcom: rpmhpd: add sc8280xp & sa8540p rpmh power-domains")
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
>  drivers/pmdomain/qcom/rpmhpd.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [RFC PATCH 00/24] GPU_CC power requirements reality check
  2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
                   ` (23 preceding siblings ...)
  2025-07-28 16:16 ` [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: " Konrad Dybcio
@ 2025-08-19 12:27 ` Ulf Hansson
  24 siblings, 0 replies; 36+ messages in thread
From: Ulf Hansson @ 2025-08-19 12:27 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Johan Hovold, Bjorn Andersson, Taniya Das, Michael Turquette,
	Stephen Boyd, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Taniya Das, Imran Shaik, Bartosz Golaszewski, Dmitry Baryshkov,
	cros-qcom-dts-watchers, Douglas Anderson, Vinod Koul,
	Richard Acayan, Andy Gross, Ajit Pandey, Luca Weiss,
	Jonathan Marek, Neil Armstrong, Jagadeesh Kona, Akhil P Oommen,
	Marijn Suijten, linux-arm-msm, linux-pm, linux-kernel, linux-clk,
	devicetree, Krzysztof Kozlowski, Konrad Dybcio

On Mon, 28 Jul 2025 at 18:16, Konrad Dybcio <konradybcio@kernel.org> wrote:
>
> In an effort parallel to [1], the GPU clock controller requires more
> than 0/1 power domains to function properly.
> Describe these dependencies to ensure the hardware can always power on
> safely.
>
> Patches 1 & 2 are separate (but related) fixes,  which need to be
> merged before the DT change for SC8280XP.
>
> Posting as RFC since I only got to test it on SC8280XP(-crd).
>
> [1] https://lore.kernel.org/all/20250530-videocc-pll-multi-pd-voting-v5-0-02303b3a582d@quicinc.com/
>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

This doesn't apply, as I have just queued up a series from Dmitry [1]
that requires this to be re-based on top of my next branch. Please
submit a new version.

Kind regards
Uffe

[1]
https://lore.kernel.org/all/20250718-rework-rpmhpd-rpmpd-v1-0-eedca108e540@oss.qualcomm.com/


> ---
> Konrad Dybcio (24):
>       dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO
>       pmdomain: qcom: rpmhpd: Add MXC to SC8280XP
>       dt-bindings: clock: qcom,gpucc: Merge in sm8450-gpucc.yaml
>       dt-bindings: clock: qcom,gpucc: Describe actual power domain plumbing
>       dt-bindings: clock: qcom,gpucc: Sort out SA8540P constraints
>       arm64: dts: qcom: qcs8300: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sa8540p: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sa8775p: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sar2130p: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sc7180: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sc7280: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sc8180x: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sc8280xp: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sdm670: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sdm845: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sm4450: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sm6350: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sm8150: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sm8250: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sm8350: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sm8450: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sm8550: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: sm8650: Describe GPU_CC power plumbing requirements
>       arm64: dts: qcom: x1e80100: Describe GPU_CC power plumbing requirements
>
>  .../devicetree/bindings/clock/qcom,gpucc.yaml      | 155 ++++++++++++++++++---
>  .../bindings/clock/qcom,sm8450-gpucc.yaml          |  75 ----------
>  arch/arm64/boot/dts/qcom/qcs8300.dtsi              |   6 +
>  arch/arm64/boot/dts/qcom/sa8155p.dtsi              |   6 +
>  arch/arm64/boot/dts/qcom/sa8540p.dtsi              |   6 +-
>  arch/arm64/boot/dts/qcom/sa8775p.dtsi              |   5 +
>  arch/arm64/boot/dts/qcom/sar2130p.dtsi             |   5 +
>  arch/arm64/boot/dts/qcom/sc7180.dtsi               |   5 +
>  arch/arm64/boot/dts/qcom/sc7280.dtsi               |   5 +
>  arch/arm64/boot/dts/qcom/sc8180x.dtsi              |   5 +
>  arch/arm64/boot/dts/qcom/sc8280xp.dtsi             |   6 +-
>  arch/arm64/boot/dts/qcom/sdm670.dtsi               |   4 +
>  arch/arm64/boot/dts/qcom/sdm845.dtsi               |   4 +
>  arch/arm64/boot/dts/qcom/sm4450.dtsi               |   4 +
>  arch/arm64/boot/dts/qcom/sm6350.dtsi               |   4 +
>  arch/arm64/boot/dts/qcom/sm8150.dtsi               |   4 +
>  arch/arm64/boot/dts/qcom/sm8250.dtsi               |   5 +
>  arch/arm64/boot/dts/qcom/sm8350.dtsi               |   6 +
>  arch/arm64/boot/dts/qcom/sm8450.dtsi               |   6 +
>  arch/arm64/boot/dts/qcom/sm8550.dtsi               |   6 +
>  arch/arm64/boot/dts/qcom/sm8650.dtsi               |   5 +
>  arch/arm64/boot/dts/qcom/x1e80100.dtsi             |   6 +
>  drivers/pmdomain/qcom/rpmhpd.c                     |   4 +
>  include/dt-bindings/power/qcom-rpmpd.h             |   1 +
>  24 files changed, 240 insertions(+), 98 deletions(-)
> ---
> base-commit: 0b90c3b6d76ea512dc3dac8fb30215e175b0019a
> change-id: 20250728-topic-gpucc_power_plumbing-646275aec2cb
>
> Best regards,
> --
> Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>

^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2025-08-19 12:27 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-28 16:16 [RFC PATCH 00/24] GPU_CC power requirements reality check Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 01/24] dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO Konrad Dybcio
2025-07-30 22:01   ` Rob Herring (Arm)
2025-07-28 16:16 ` [PATCH RFC 02/24] pmdomain: qcom: rpmhpd: Add MXC to SC8280XP Konrad Dybcio
2025-07-31 20:31   ` Dmitry Baryshkov
2025-07-28 16:16 ` [PATCH RFC 03/24] dt-bindings: clock: qcom,gpucc: Merge in sm8450-gpucc.yaml Konrad Dybcio
2025-07-30 22:04   ` Rob Herring (Arm)
2025-07-28 16:16 ` [PATCH RFC 04/24] dt-bindings: clock: qcom,gpucc: Describe actual power domain plumbing Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 05/24] dt-bindings: clock: qcom,gpucc: Sort out SA8540P constraints Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 06/24] arm64: dts: qcom: qcs8300: Describe GPU_CC power plumbing requirements Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 07/24] arm64: dts: qcom: sa8540p: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 08/24] arm64: dts: qcom: sa8775p: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 09/24] arm64: dts: qcom: sar2130p: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 10/24] arm64: dts: qcom: sc7180: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 11/24] arm64: dts: qcom: sc7280: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 12/24] arm64: dts: qcom: sc8180x: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 13/24] arm64: dts: qcom: sc8280xp: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 14/24] arm64: dts: qcom: sdm670: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 15/24] arm64: dts: qcom: sdm845: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 16/24] arm64: dts: qcom: sm4450: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 17/24] arm64: dts: qcom: sm6350: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 18/24] arm64: dts: qcom: sm8150: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 19/24] arm64: dts: qcom: sm8250: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 20/24] arm64: dts: qcom: sm8350: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 21/24] arm64: dts: qcom: sm8450: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 22/24] arm64: dts: qcom: sm8550: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 23/24] arm64: dts: qcom: sm8650: " Konrad Dybcio
2025-07-28 16:16 ` [PATCH RFC 24/24] arm64: dts: qcom: x1e80100: " Konrad Dybcio
2025-07-28 17:10   ` Stephan Gerhold
2025-07-28 21:31     ` Konrad Dybcio
2025-07-29  6:34       ` Stephan Gerhold
2025-07-29  8:23         ` Konrad Dybcio
2025-07-29 13:28           ` Konrad Dybcio
2025-07-29 15:44             ` Stephan Gerhold
2025-07-29 22:08               ` Akhil P Oommen
2025-08-19 12:27 ` [RFC PATCH 00/24] GPU_CC power requirements reality check Ulf Hansson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).