* [PATCH v4 0/8] Support for Adreno 612 GPU - Respin
@ 2025-12-04 13:21 Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 1/8] drm/msm/a6xx: Retrieve gmu core range by index Akhil P Oommen
` (7 more replies)
0 siblings, 8 replies; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-04 13:21 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang, Akhil P Oommen, Dmitry Baryshkov,
Krzysztof Kozlowski, Qingqing Zhou, Konrad Dybcio, Jie Zhang
This is a respin of an old series [1] that aimed to add support for
Adreno 612 GPU found in SM6150/QCS615 chipsets. In this version, we
have consolidated the previously separate series for DT and driver
support, along with some significant rework.
Regarding A612 GPU, it falls under ADRENO_6XX_GEN1 family and is a cut
down version of A615 GPU. A612 has a new IP called Reduced Graphics
Management Unit or RGMU, a small state machine which helps to toggle
GX GDSC (connected to CX rail) to implement the IFPC feature. Unlike a
full-fledged GMU, the RGMU does not support features such as clock
control, resource voting via RPMh, HFI etc. Therefore, we require linux
clock driver support similar to gmu-wrapper implementations to control
gpu core clock and GX GDSC.
In this series, the description of RGMU hardware in devicetree is more
complete than in previous version. However, the RGMU core is not
initialized from the driver as there is currently no need for it. We do
perform a dummy load of RGMU firmware (now available in linux-firmware)
to ensure that enabling RGMU core in the future won't break backward
compatibility for users.
Due to significant changes compared to the old series, all R-b tags have
been dropped. Please review with fresh eyes.
Last 3 patches are for Bjorn and the rest are for Rob Clark for pick up.
[1] Driver: https://lore.kernel.org/lkml/20241213-a612-gpu-support-v3-1-0e9b25570a69@quicinc.com/
Devicetree: https://lore.kernel.org/lkml/fu4rayftf3i4arf6l6bzqyzsctomglhpiniljkeuj74ftvzlpo@vklca2giwjlw/
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
---
Changes in v4:
- Rebased on top of next-20251204 tag
- Added a new patch to simplify gpu dt schema (Krzysztof)
- Added a new patch for GPU cooling support (Gaurav)
- Updated the gpu/gmu register range in DT to be more accurate
- Remove 290Mhz corner for GPU as that is not present in downstream
- Link to v3: https://lore.kernel.org/r/20251122-qcs615-spin-2-v3-0-9f4d4c87f51d@oss.qualcomm.com
Changes in v3:
- Rebased on top of next-20251121 tag
- Drop a612 driver support patch as it got picked up
- Rename rgmu.yaml -> qcom,adreno-rgmu.yaml (Krzysztof)
- Remove reg-names property for rgmu node (Krzysztof)
- Use 'gmu' instead of 'rgmu' as node name (Krzysztof)
- Describe cx_mem and cx_dgc register ranges (Krzysztof)
- A new patch to retrieve gmu core reg resource by id
- Link to v2: https://lore.kernel.org/r/20251107-qcs615-spin-2-v2-0-a2d7c4fbf6e6@oss.qualcomm.com
Changes in v2:
- Rebased on next-20251105
- Fix hwcg configuration (Dan)
- Reuse a few gmu-wrapper routines (Konrad)
- Split out rgmu dt schema (Krzysztof/Dmitry)
- Fixes for GPU dt binding doc (Krzysztof)
- Removed VDD_CX from rgmu dt node. Will post a separate series to
address the gpucc changes (Konrad)
- Fix the reg range size for adreno smmu node and reorder the properties (Konrad)
- Link to v1: https://lore.kernel.org/r/20251017-qcs615-spin-2-v1-0-0baa44f80905@oss.qualcomm.com
---
Akhil P Oommen (3):
drm/msm/a6xx: Retrieve gmu core range by index
dt-bindings: display/msm: gpu: Simplify conditional schema logic
dt-bindings: display/msm: gpu: Document A612 GPU
Gaurav Kohli (1):
arm64: dts: qcom: talos: Add GPU cooling
Jie Zhang (3):
dt-bindings: display/msm/rgmu: Document A612 RGMU
arm64: dts: qcom: talos: Add gpu and rgmu nodes
arm64: dts: qcom: qcs615-ride: Enable Adreno 612 GPU
Qingqing Zhou (1):
arm64: dts: qcom: talos: add the GPU SMMU node
.../devicetree/bindings/display/msm/gpu.yaml | 86 +++++++++---
.../bindings/display/msm/qcom,adreno-rgmu.yaml | 126 +++++++++++++++++
MAINTAINERS | 1 +
arch/arm64/boot/dts/qcom/qcs615-ride.dts | 8 ++
arch/arm64/boot/dts/qcom/talos.dtsi | 149 +++++++++++++++++++++
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 14 +-
6 files changed, 354 insertions(+), 30 deletions(-)
---
base-commit: 2bd3691a4219f5610afefaef1016c2ff95ca2ec9
change-id: 20251015-qcs615-spin-2-ed45b0deb998
Best regards,
--
Akhil P Oommen <akhilpo@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 1/8] drm/msm/a6xx: Retrieve gmu core range by index
2025-12-04 13:21 [PATCH v4 0/8] Support for Adreno 612 GPU - Respin Akhil P Oommen
@ 2025-12-04 13:21 ` Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 2/8] dt-bindings: display/msm: gpu: Simplify conditional schema logic Akhil P Oommen
` (6 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-04 13:21 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang, Akhil P Oommen, Dmitry Baryshkov
Some GPUs like A612 doesn't use a named register range resource. This
is because the reg-name property is discouraged when there is just a
single resource.
To address this, retrieve the 'gmu' register range by its index. It is
always guaranteed to be at index 0.
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 5903cd891b495f20e521562358068c7eea6ae603..9662201cd2e9d075425ac98bfa7c60989d00337d 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -2029,21 +2029,19 @@ static int cxpd_notifier_cb(struct notifier_block *nb,
return 0;
}
-static void __iomem *a6xx_gmu_get_mmio(struct platform_device *pdev,
- const char *name, resource_size_t *start)
+static void __iomem *a6xx_gmu_get_mmio(struct platform_device *pdev, resource_size_t *start)
{
+ struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
void __iomem *ret;
- struct resource *res = platform_get_resource_byname(pdev,
- IORESOURCE_MEM, name);
if (!res) {
- DRM_DEV_ERROR(&pdev->dev, "Unable to find the %s registers\n", name);
+ DRM_DEV_ERROR(&pdev->dev, "Unable to find the gmu core registers\n");
return ERR_PTR(-EINVAL);
}
ret = ioremap(res->start, resource_size(res));
if (!ret) {
- DRM_DEV_ERROR(&pdev->dev, "Unable to map the %s registers\n", name);
+ DRM_DEV_ERROR(&pdev->dev, "Unable to map the gmu core registers\n");
return ERR_PTR(-EINVAL);
}
@@ -2085,7 +2083,7 @@ int a6xx_gmu_wrapper_init(struct a6xx_gpu *a6xx_gpu, struct device_node *node)
gmu->nr_clocks = ret;
/* Map the GMU registers */
- gmu->mmio = a6xx_gmu_get_mmio(pdev, "gmu", &start);
+ gmu->mmio = a6xx_gmu_get_mmio(pdev, &start);
if (IS_ERR(gmu->mmio)) {
ret = PTR_ERR(gmu->mmio);
goto err_mmio;
@@ -2244,7 +2242,7 @@ int a6xx_gmu_init(struct a6xx_gpu *a6xx_gpu, struct device_node *node)
goto err_memory;
/* Map the GMU registers */
- gmu->mmio = a6xx_gmu_get_mmio(pdev, "gmu", &start);
+ gmu->mmio = a6xx_gmu_get_mmio(pdev, &start);
if (IS_ERR(gmu->mmio)) {
ret = PTR_ERR(gmu->mmio);
goto err_memory;
--
2.51.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 2/8] dt-bindings: display/msm: gpu: Simplify conditional schema logic
2025-12-04 13:21 [PATCH v4 0/8] Support for Adreno 612 GPU - Respin Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 1/8] drm/msm/a6xx: Retrieve gmu core range by index Akhil P Oommen
@ 2025-12-04 13:21 ` Akhil P Oommen
2025-12-04 15:31 ` Krzysztof Kozlowski
2025-12-04 13:21 ` [PATCH v4 3/8] dt-bindings: display/msm: gpu: Document A612 GPU Akhil P Oommen
` (5 subsequent siblings)
7 siblings, 1 reply; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-04 13:21 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang, Akhil P Oommen
JSON Schema conditionals can become complex and error-prone when combined
with regex patterns. To improve readability and maintainability, replace
nested if-else blocks with a flattened structure using explicit enums.
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
---
.../devicetree/bindings/display/msm/gpu.yaml | 56 ++++++++++++++--------
1 file changed, 36 insertions(+), 20 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/msm/gpu.yaml b/Documentation/devicetree/bindings/display/msm/gpu.yaml
index 826aafdcc20be4bbd7eba619f7fe172b6e9a5897..5c12b5aacf8f3ff64ca2ef97fb0dd6c3a26a71bc 100644
--- a/Documentation/devicetree/bindings/display/msm/gpu.yaml
+++ b/Documentation/devicetree/bindings/display/msm/gpu.yaml
@@ -387,26 +387,42 @@ allOf:
required:
- clocks
- clock-names
- else:
- if:
- properties:
- compatible:
- contains:
- oneOf:
- - pattern: '^qcom,adreno-[67][0-9][0-9]\.[0-9]+$'
- - pattern: '^qcom,adreno-[0-9a-f]{8}$'
-
- then: # Starting with A6xx, the clocks are usually defined in the GMU node
- properties:
- clocks: false
- clock-names: false
-
- reg-names:
- minItems: 1
- items:
- - const: kgsl_3d0_reg_memory
- - const: cx_mem
- - const: cx_dbgc
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,adreno-615.0
+ - qcom,adreno-618.0
+ - qcom,adreno-619.0
+ - qcom,adreno-621.0
+ - qcom,adreno-623.0
+ - qcom,adreno-630.2
+ - qcom,adreno-635.0
+ - qcom,adreno-640.1
+ - qcom,adreno-650.2
+ - qcom,adreno-660.1
+ - qcom,adreno-663.0
+ - qcom,adreno-680.1
+ - qcom,adreno-690.0
+ - qcom,adreno-730.1
+ - qcom,adreno-43030c00
+ - qcom,adreno-43050a01
+ - qcom,adreno-43050c01
+ - qcom,adreno-43051401
+
+ then: # Starting with A6xx, the clocks are usually defined in the GMU node
+ properties:
+ clocks: false
+ clock-names: false
+
+ reg-names:
+ minItems: 1
+ items:
+ - const: kgsl_3d0_reg_memory
+ - const: cx_mem
+ - const: cx_dbgc
examples:
- |
--
2.51.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 3/8] dt-bindings: display/msm: gpu: Document A612 GPU
2025-12-04 13:21 [PATCH v4 0/8] Support for Adreno 612 GPU - Respin Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 1/8] drm/msm/a6xx: Retrieve gmu core range by index Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 2/8] dt-bindings: display/msm: gpu: Simplify conditional schema logic Akhil P Oommen
@ 2025-12-04 13:21 ` Akhil P Oommen
2025-12-04 15:34 ` Krzysztof Kozlowski
2025-12-04 13:21 ` [PATCH v4 4/8] dt-bindings: display/msm/rgmu: Document A612 RGMU Akhil P Oommen
` (4 subsequent siblings)
7 siblings, 1 reply; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-04 13:21 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang, Akhil P Oommen
A612 GPU has a new IP called RGMU (Reduced Graphics Management Unit)
which replaces GMU. But it doesn't do clock or voltage scaling. So we
need the gpu core clock in the GPU node along with the power domain to
do clock and voltage scaling from the kernel. Update the bindings to
describe this GPU.
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
---
.../devicetree/bindings/display/msm/gpu.yaml | 30 ++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/msm/gpu.yaml b/Documentation/devicetree/bindings/display/msm/gpu.yaml
index 5c12b5aacf8f3ff64ca2ef97fb0dd6c3a26a71bc..5d5ff4307ee7ce5464afc5233f03a8bd1daaab22 100644
--- a/Documentation/devicetree/bindings/display/msm/gpu.yaml
+++ b/Documentation/devicetree/bindings/display/msm/gpu.yaml
@@ -45,11 +45,11 @@ properties:
- const: amd,imageon
clocks:
- minItems: 2
+ minItems: 1
maxItems: 7
clock-names:
- minItems: 2
+ minItems: 1
maxItems: 7
reg:
@@ -388,6 +388,32 @@ allOf:
- clocks
- clock-names
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: qcom,adreno-612.0
+ then:
+ properties:
+ clocks:
+ items:
+ - description: GPU Core clock
+
+ clock-names:
+ items:
+ - const: core
+
+ reg-names:
+ minItems: 1
+ items:
+ - const: kgsl_3d0_reg_memory
+ - const: cx_mem
+ - const: cx_dbgc
+
+ required:
+ - clocks
+ - clock-names
+
- if:
properties:
compatible:
--
2.51.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 4/8] dt-bindings: display/msm/rgmu: Document A612 RGMU
2025-12-04 13:21 [PATCH v4 0/8] Support for Adreno 612 GPU - Respin Akhil P Oommen
` (2 preceding siblings ...)
2025-12-04 13:21 ` [PATCH v4 3/8] dt-bindings: display/msm: gpu: Document A612 GPU Akhil P Oommen
@ 2025-12-04 13:21 ` Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 5/8] arm64: dts: qcom: talos: add the GPU SMMU node Akhil P Oommen
` (3 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-04 13:21 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang, Akhil P Oommen, Krzysztof Kozlowski
From: Jie Zhang <jie.zhang@oss.qualcomm.com>
RGMU a.k.a Reduced Graphics Management Unit is a small state machine
with the sole purpose of providing IFPC (Inter Frame Power Collapse)
support. Compared to GMU, it doesn't manage GPU clock, voltage
scaling, bw voting or any other functionalities. All it does is detect
an idle GPU and toggle the GDSC switch. As it doesn't access DDR space,
it doesn't require iommu.
So far, only Adreno 612 GPU has an RGMU core. Document it in
qcom,adreno-rgmu.yaml.
Signed-off-by: Jie Zhang <jie.zhang@oss.qualcomm.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
---
.../bindings/display/msm/qcom,adreno-rgmu.yaml | 126 +++++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 127 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/msm/qcom,adreno-rgmu.yaml b/Documentation/devicetree/bindings/display/msm/qcom,adreno-rgmu.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..bacc5b32e6d7b2f2b9e0424e77236e6a0ebe9a19
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/msm/qcom,adreno-rgmu.yaml
@@ -0,0 +1,126 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+%YAML 1.2
+---
+
+$id: http://devicetree.org/schemas/display/msm/qcom,adreno-rgmu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RGMU attached to certain Adreno GPUs
+
+maintainers:
+ - Rob Clark <robin.clark@oss.qualcomm.com>
+
+description:
+ RGMU (Reduced Graphics Management Unit) IP is present in some GPUs that
+ belong to Adreno A6xx family. It is a small state machine that helps to
+ toggle the GX GDSC (connected to CX rail) to implement IFPC feature and save
+ power.
+
+properties:
+ compatible:
+ items:
+ - const: qcom,adreno-rgmu-612.0
+ - const: qcom,adreno-rgmu
+
+ reg:
+ items:
+ - description: Core RGMU registers
+
+ clocks:
+ items:
+ - description: GMU clock
+ - description: GPU CX clock
+ - description: GPU AXI clock
+ - description: GPU MEMNOC clock
+ - description: GPU SMMU vote clock
+
+ clock-names:
+ items:
+ - const: gmu
+ - const: cxo
+ - const: axi
+ - const: memnoc
+ - const: smmu_vote
+
+ power-domains:
+ items:
+ - description: CX GDSC power domain
+ - description: GX GDSC power domain
+
+ power-domain-names:
+ items:
+ - const: cx
+ - const: gx
+
+ interrupts:
+ items:
+ - description: GMU OOB interrupt
+ - description: GMU interrupt
+
+ interrupt-names:
+ items:
+ - const: oob
+ - const: gmu
+
+ operating-points-v2: true
+ opp-table:
+ type: object
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - power-domains
+ - power-domain-names
+ - interrupts
+ - interrupt-names
+ - operating-points-v2
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,qcs615-gpucc.h>
+ #include <dt-bindings/clock/qcom,qcs615-gcc.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/power/qcom,rpmhpd.h>
+
+ gmu@506a000 {
+ compatible = "qcom,adreno-rgmu-612.0", "qcom,adreno-rgmu";
+
+ reg = <0x05000000 0x90000>;
+
+ clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
+ <&gpucc GPU_CC_CXO_CLK>,
+ <&gcc GCC_DDRSS_GPU_AXI_CLK>,
+ <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+ <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
+ clock-names = "gmu",
+ "cxo",
+ "axi",
+ "memnoc",
+ "smmu_vote";
+
+ power-domains = <&gpucc CX_GDSC>,
+ <&gpucc GX_GDSC>;
+ power-domain-names = "cx",
+ "gx";
+
+ interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "oob",
+ "gmu";
+
+ operating-points-v2 = <&gmu_opp_table>;
+
+ gmu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-200000000 {
+ opp-hz = /bits/ 64 <200000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ };
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index ea364af99ba5c28895df765288d9d77448d2a8b7..77d7ecb92d9eeacf54e02415746e41d472915e38 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -7980,6 +7980,7 @@ S: Maintained
B: https://gitlab.freedesktop.org/drm/msm/-/issues
T: git https://gitlab.freedesktop.org/drm/msm.git
F: Documentation/devicetree/bindings/display/msm/gpu.yaml
+F: Documentation/devicetree/bindings/display/msm/qcom,adreno-rgmu.yaml
F: Documentation/devicetree/bindings/opp/opp-v2-qcom-adreno.yaml
F: drivers/gpu/drm/msm/adreno/
F: drivers/gpu/drm/msm/msm_gpu.*
--
2.51.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 5/8] arm64: dts: qcom: talos: add the GPU SMMU node
2025-12-04 13:21 [PATCH v4 0/8] Support for Adreno 612 GPU - Respin Akhil P Oommen
` (3 preceding siblings ...)
2025-12-04 13:21 ` [PATCH v4 4/8] dt-bindings: display/msm/rgmu: Document A612 RGMU Akhil P Oommen
@ 2025-12-04 13:21 ` Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 6/8] arm64: dts: qcom: talos: Add gpu and rgmu nodes Akhil P Oommen
` (2 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-04 13:21 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang, Akhil P Oommen, Qingqing Zhou,
Dmitry Baryshkov, Konrad Dybcio
From: Qingqing Zhou <quic_qqzhou@quicinc.com>
Add the Adreno GPU SMMU node for Talos chipset.
Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
Signed-off-by: Jie Zhang <jie.zhang@oss.qualcomm.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/talos.dtsi | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi
index d1dbfa3bd81c3d999bd79fc92ad85312c2f83087..743c840e496d70133bf82928e9e0c3da9653a5ee 100644
--- a/arch/arm64/boot/dts/qcom/talos.dtsi
+++ b/arch/arm64/boot/dts/qcom/talos.dtsi
@@ -1839,6 +1839,31 @@ gpucc: clock-controller@5090000 {
#power-domain-cells = <1>;
};
+ adreno_smmu: iommu@50a0000 {
+ compatible = "qcom,qcs615-smmu-500", "qcom,adreno-smmu",
+ "qcom,smmu-500", "arm,mmu-500";
+ reg = <0x0 0x050a0000 0x0 0x40000>;
+ #iommu-cells = <2>;
+ #global-interrupts = <1>;
+ interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 590 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 593 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 595 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 596 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+ <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
+ <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
+ clock-names = "mem",
+ "hlos",
+ "iface";
+ power-domains = <&gpucc CX_GDSC>;
+ dma-coherent;
+ };
+
stm@6002000 {
compatible = "arm,coresight-stm", "arm,primecell";
reg = <0x0 0x06002000 0x0 0x1000>,
--
2.51.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 6/8] arm64: dts: qcom: talos: Add gpu and rgmu nodes
2025-12-04 13:21 [PATCH v4 0/8] Support for Adreno 612 GPU - Respin Akhil P Oommen
` (4 preceding siblings ...)
2025-12-04 13:21 ` [PATCH v4 5/8] arm64: dts: qcom: talos: add the GPU SMMU node Akhil P Oommen
@ 2025-12-04 13:21 ` Akhil P Oommen
2025-12-05 20:50 ` Dmitry Baryshkov
2025-12-04 13:21 ` [PATCH v4 7/8] arm64: dts: qcom: talos: Add GPU cooling Akhil P Oommen
2025-12-04 13:22 ` [PATCH v4 8/8] arm64: dts: qcom: qcs615-ride: Enable Adreno 612 GPU Akhil P Oommen
7 siblings, 1 reply; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-04 13:21 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang, Akhil P Oommen, Jie Zhang,
Dmitry Baryshkov
From: Jie Zhang <quic_jiezh@quicinc.com>
Add gpu and rgmu nodes for Talos chipset.
Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/talos.dtsi | 110 ++++++++++++++++++++++++++++++++++++
1 file changed, 110 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi
index 743c840e496d70133bf82928e9e0c3da9653a5ee..effaff88df83d5e6a0aab45a2732a00cae11e83e 100644
--- a/arch/arm64/boot/dts/qcom/talos.dtsi
+++ b/arch/arm64/boot/dts/qcom/talos.dtsi
@@ -647,6 +647,11 @@ rproc_adsp_mem: rproc-adsp@95900000 {
reg = <0x0 0x95900000 0x0 0x1e00000>;
no-map;
};
+
+ pil_gpu_mem: pil-gpu@97715000 {
+ reg = <0x0 0x97715000 0x0 0x2000>;
+ no-map;
+ };
};
soc: soc@0 {
@@ -1826,6 +1831,111 @@ data-pins {
};
};
+ gpu: gpu@5000000 {
+ compatible = "qcom,adreno-612.0", "qcom,adreno";
+ reg = <0x0 0x05000000 0x0 0x40000>,
+ <0x0 0x0509e000 0x0 0x1000>,
+ <0x0 0x05061000 0x0 0x800>;
+ reg-names = "kgsl_3d0_reg_memory",
+ "cx_mem",
+ "cx_dbgc";
+
+ clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>;
+ clock-names = "core";
+
+ interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+
+ interconnects = <&gem_noc MASTER_GFX3D QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "gfx-mem";
+
+ iommus = <&adreno_smmu 0x0 0x401>;
+
+ operating-points-v2 = <&gpu_opp_table>;
+ power-domains = <&rpmhpd RPMHPD_CX>;
+
+ qcom,gmu = <&gmu>;
+
+ #cooling-cells = <2>;
+
+ status = "disabled";
+
+ gpu_zap_shader: zap-shader {
+ memory-region = <&pil_gpu_mem>;
+ };
+
+ gpu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-845000000 {
+ opp-hz = /bits/ 64 <845000000>;
+ required-opps = <&rpmhpd_opp_turbo>;
+ opp-peak-kBps = <7050000>;
+ };
+
+ opp-745000000 {
+ opp-hz = /bits/ 64 <745000000>;
+ required-opps = <&rpmhpd_opp_nom_l1>;
+ opp-peak-kBps = <6075000>;
+ };
+
+ opp-650000000 {
+ opp-hz = /bits/ 64 <650000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ opp-peak-kBps = <5287500>;
+ };
+
+ opp-500000000 {
+ opp-hz = /bits/ 64 <500000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <3975000>;
+ };
+
+ opp-435000000 {
+ opp-hz = /bits/ 64 <435000000>;
+ required-opps = <&rpmhpd_opp_svs>;
+ opp-peak-kBps = <3000000>;
+ };
+ };
+ };
+
+ gmu: gmu@506a000 {
+ compatible = "qcom,adreno-rgmu-612.0", "qcom,adreno-rgmu";
+ reg = <0x0 0x0506a000 0x0 0x34000>;
+
+ clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
+ <&gpucc GPU_CC_CXO_CLK>,
+ <&gcc GCC_DDRSS_GPU_AXI_CLK>,
+ <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+ <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
+ clock-names = "gmu",
+ "cxo",
+ "axi",
+ "memnoc",
+ "smmu_vote";
+
+ power-domains = <&gpucc CX_GDSC>,
+ <&gpucc GX_GDSC>;
+ power-domain-names = "cx",
+ "gx";
+
+ interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "oob",
+ "gmu";
+
+ operating-points-v2 = <&gmu_opp_table>;
+
+ gmu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-200000000 {
+ opp-hz = /bits/ 64 <200000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ };
+ };
+ };
+
gpucc: clock-controller@5090000 {
compatible = "qcom,qcs615-gpucc";
reg = <0 0x05090000 0 0x9000>;
--
2.51.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 7/8] arm64: dts: qcom: talos: Add GPU cooling
2025-12-04 13:21 [PATCH v4 0/8] Support for Adreno 612 GPU - Respin Akhil P Oommen
` (5 preceding siblings ...)
2025-12-04 13:21 ` [PATCH v4 6/8] arm64: dts: qcom: talos: Add gpu and rgmu nodes Akhil P Oommen
@ 2025-12-04 13:21 ` Akhil P Oommen
2025-12-05 10:10 ` Konrad Dybcio
2025-12-04 13:22 ` [PATCH v4 8/8] arm64: dts: qcom: qcs615-ride: Enable Adreno 612 GPU Akhil P Oommen
7 siblings, 1 reply; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-04 13:21 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang, Akhil P Oommen
From: Gaurav Kohli <gaurav.kohli@oss.qualcomm.com>
Unlike the CPU, the GPU does not throttle its speed automatically when it
reaches high temperatures.
Set up GPU cooling by throttling the GPU speed when it reaches 105°C.
Signed-off-by: Gaurav Kohli <gaurav.kohli@oss.qualcomm.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/talos.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi
index effaff88df83d5e6a0aab45a2732a00cae11e83e..7c2866122f9a13b8572fd9e6fa9d336176765000 100644
--- a/arch/arm64/boot/dts/qcom/talos.dtsi
+++ b/arch/arm64/boot/dts/qcom/talos.dtsi
@@ -18,6 +18,7 @@
#include <dt-bindings/power/qcom-rpmpd.h>
#include <dt-bindings/power/qcom,rpmhpd.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/thermal/thermal.h>
/ {
interrupt-parent = <&intc>;
@@ -4844,12 +4845,25 @@ gpu-thermal {
thermal-sensors = <&tsens0 9>;
trips {
+ gpu_alert0: trip-point0 {
+ temperature = <105000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+
gpu-critical {
temperature = <115000>;
hysteresis = <1000>;
type = "critical";
};
};
+
+ cooling-maps {
+ map0 {
+ trip = <&gpu_alert0>;
+ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
};
q6-hvx-thermal {
--
2.51.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 8/8] arm64: dts: qcom: qcs615-ride: Enable Adreno 612 GPU
2025-12-04 13:21 [PATCH v4 0/8] Support for Adreno 612 GPU - Respin Akhil P Oommen
` (6 preceding siblings ...)
2025-12-04 13:21 ` [PATCH v4 7/8] arm64: dts: qcom: talos: Add GPU cooling Akhil P Oommen
@ 2025-12-04 13:22 ` Akhil P Oommen
7 siblings, 0 replies; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-04 13:22 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang, Akhil P Oommen, Jie Zhang, Konrad Dybcio,
Dmitry Baryshkov
From: Jie Zhang <quic_jiezh@quicinc.com>
Enable GPU for qcs615-ride platform and provide path for zap
shader.
Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/qcs615-ride.dts | 8 ++++++++
arch/arm64/boot/dts/qcom/talos.dtsi | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
index be67eb173046f9e4ac58157f282c3af41e53d374..33e33aa54691d38f96e5c76596719691e2596eb5 100644
--- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
@@ -358,6 +358,14 @@ vreg_l17a: ldo17 {
};
};
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/qcs615/a612_zap.mbn";
+};
+
&i2c2 {
clock-frequency = <400000>;
status = "okay";
diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi
index 7c2866122f9a13b8572fd9e6fa9d336176765000..606f5e234e4a02caaa03f1084336e137768dba1f 100644
--- a/arch/arm64/boot/dts/qcom/talos.dtsi
+++ b/arch/arm64/boot/dts/qcom/talos.dtsi
@@ -1902,7 +1902,7 @@ opp-435000000 {
gmu: gmu@506a000 {
compatible = "qcom,adreno-rgmu-612.0", "qcom,adreno-rgmu";
- reg = <0x0 0x0506a000 0x0 0x34000>;
+ reg = <0x0 0x0506d000 0x0 0x2c000>;
clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
<&gpucc GPU_CC_CXO_CLK>,
--
2.51.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v4 2/8] dt-bindings: display/msm: gpu: Simplify conditional schema logic
2025-12-04 13:21 ` [PATCH v4 2/8] dt-bindings: display/msm: gpu: Simplify conditional schema logic Akhil P Oommen
@ 2025-12-04 15:31 ` Krzysztof Kozlowski
0 siblings, 0 replies; 15+ messages in thread
From: Krzysztof Kozlowski @ 2025-12-04 15:31 UTC (permalink / raw)
To: Akhil P Oommen, Rob Clark, Sean Paul, Konrad Dybcio,
Dmitry Baryshkov, Abhinav Kumar, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Jessica Zhang, Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang
On 04/12/2025 14:21, Akhil P Oommen wrote:
> JSON Schema conditionals can become complex and error-prone when combined
> with regex patterns. To improve readability and maintainability, replace
> nested if-else blocks with a flattened structure using explicit enums.
>
> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
> ---
> .../devicetree/bindings/display/msm/gpu.yaml | 56 ++++++++++++++--------
> 1 file changed, 36 insertions(+), 20 deletions(-)
>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 3/8] dt-bindings: display/msm: gpu: Document A612 GPU
2025-12-04 13:21 ` [PATCH v4 3/8] dt-bindings: display/msm: gpu: Document A612 GPU Akhil P Oommen
@ 2025-12-04 15:34 ` Krzysztof Kozlowski
2025-12-05 13:58 ` Akhil P Oommen
0 siblings, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2025-12-04 15:34 UTC (permalink / raw)
To: Akhil P Oommen, Rob Clark, Sean Paul, Konrad Dybcio,
Dmitry Baryshkov, Abhinav Kumar, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Jessica Zhang, Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang
On 04/12/2025 14:21, Akhil P Oommen wrote:
>
> clocks:
> - minItems: 2
> + minItems: 1
> maxItems: 7
>
> clock-names:
> - minItems: 2
> + minItems: 1
> maxItems: 7
>
> reg:
> @@ -388,6 +388,32 @@ allOf:
> - clocks
> - clock-names
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: qcom,adreno-612.0
> + then:
> + properties:
> + clocks:
> + items:
> + - description: GPU Core clock
> +
> + clock-names:
> + items:
> + - const: core
> +
> + reg-names:
> + minItems: 1
> + items:
> + - const: kgsl_3d0_reg_memory
> + - const: cx_mem
> + - const: cx_dbgc
The patch overall gets better, thanks, but I think I asked about this
already - why you don't have the list strict? I don't see reason for
making list flexible and I don't see the explanation in the commit msg.
Either this should be fixed-size (so minItems: 3 and same for reg:) or
you should document reasons WHY in the commit msg. Otherwise next time I
will ask the same. :(
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 7/8] arm64: dts: qcom: talos: Add GPU cooling
2025-12-04 13:21 ` [PATCH v4 7/8] arm64: dts: qcom: talos: Add GPU cooling Akhil P Oommen
@ 2025-12-05 10:10 ` Konrad Dybcio
0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2025-12-05 10:10 UTC (permalink / raw)
To: Akhil P Oommen, Rob Clark, Sean Paul, Konrad Dybcio,
Dmitry Baryshkov, Abhinav Kumar, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Jessica Zhang, Gaurav Kohli
Cc: Dan Carpenter, linux-arm-msm, dri-devel, freedreno, linux-kernel,
devicetree, Jie Zhang
On 12/4/25 2:21 PM, Akhil P Oommen wrote:
> From: Gaurav Kohli <gaurav.kohli@oss.qualcomm.com>
>
> Unlike the CPU, the GPU does not throttle its speed automatically when it
> reaches high temperatures.
>
> Set up GPU cooling by throttling the GPU speed when it reaches 105°C.
>
> Signed-off-by: Gaurav Kohli <gaurav.kohli@oss.qualcomm.com>
> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 3/8] dt-bindings: display/msm: gpu: Document A612 GPU
2025-12-04 15:34 ` Krzysztof Kozlowski
@ 2025-12-05 13:58 ` Akhil P Oommen
2025-12-05 20:53 ` Dmitry Baryshkov
0 siblings, 1 reply; 15+ messages in thread
From: Akhil P Oommen @ 2025-12-05 13:58 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli, Dan Carpenter, linux-arm-msm, dri-devel, freedreno,
linux-kernel, devicetree, Jie Zhang
On 12/4/2025 9:04 PM, Krzysztof Kozlowski wrote:
> On 04/12/2025 14:21, Akhil P Oommen wrote:
>>
>> clocks:
>> - minItems: 2
>> + minItems: 1
>> maxItems: 7
>>
>> clock-names:
>> - minItems: 2
>> + minItems: 1
>> maxItems: 7
>>
>> reg:
>> @@ -388,6 +388,32 @@ allOf:
>> - clocks
>> - clock-names
>>
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + const: qcom,adreno-612.0
>> + then:
>> + properties:
>> + clocks:
>> + items:
>> + - description: GPU Core clock
>> +
>> + clock-names:
>> + items:
>> + - const: core
>> +
>> + reg-names:
>> + minItems: 1
>> + items:
>> + - const: kgsl_3d0_reg_memory
>> + - const: cx_mem
>> + - const: cx_dbgc
>
> The patch overall gets better, thanks, but I think I asked about this
> already - why you don't have the list strict? I don't see reason for
> making list flexible and I don't see the explanation in the commit msg.
> Either this should be fixed-size (so minItems: 3 and same for reg:) or
> you should document reasons WHY in the commit msg. Otherwise next time I
> will ask the same. :(
TBH, I was just following the convention I saw for the other entries
here. We can make it more strict. But I am curious, in which case are
num reg ranges flexible usually?
Just to confirm, we should add this here for adreno-612.0:
reg:
minItems: 3
maxItems: 3
reg-names:
minItems: 3
items:
- const: kgsl_3d0_reg_memory
- const: cx_mem
- const: cx_dbgc
-Akhil>
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 6/8] arm64: dts: qcom: talos: Add gpu and rgmu nodes
2025-12-04 13:21 ` [PATCH v4 6/8] arm64: dts: qcom: talos: Add gpu and rgmu nodes Akhil P Oommen
@ 2025-12-05 20:50 ` Dmitry Baryshkov
0 siblings, 0 replies; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-12-05 20:50 UTC (permalink / raw)
To: Akhil P Oommen
Cc: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Jessica Zhang,
Gaurav Kohli, Dan Carpenter, linux-arm-msm, dri-devel, freedreno,
linux-kernel, devicetree, Jie Zhang, Jie Zhang
On Thu, Dec 04, 2025 at 06:51:58PM +0530, Akhil P Oommen wrote:
> From: Jie Zhang <quic_jiezh@quicinc.com>
>
> Add gpu and rgmu nodes for Talos chipset.
>
> Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/talos.dtsi | 110 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 110 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi
> index 743c840e496d70133bf82928e9e0c3da9653a5ee..effaff88df83d5e6a0aab45a2732a00cae11e83e 100644
> --- a/arch/arm64/boot/dts/qcom/talos.dtsi
> +++ b/arch/arm64/boot/dts/qcom/talos.dtsi
> @@ -647,6 +647,11 @@ rproc_adsp_mem: rproc-adsp@95900000 {
> reg = <0x0 0x95900000 0x0 0x1e00000>;
> no-map;
> };
> +
> + pil_gpu_mem: pil-gpu@97715000 {
> + reg = <0x0 0x97715000 0x0 0x2000>;
> + no-map;
> + };
> };
>
> soc: soc@0 {
> @@ -1826,6 +1831,111 @@ data-pins {
> };
> };
>
> + gpu: gpu@5000000 {
> + compatible = "qcom,adreno-612.0", "qcom,adreno";
> + reg = <0x0 0x05000000 0x0 0x40000>,
> + <0x0 0x0509e000 0x0 0x1000>,
> + <0x0 0x05061000 0x0 0x800>;
> + reg-names = "kgsl_3d0_reg_memory",
> + "cx_mem",
> + "cx_dbgc";
> +
> + clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>;
> + clock-names = "core";
> +
> + interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
> +
> + interconnects = <&gem_noc MASTER_GFX3D QCOM_ICC_TAG_ALWAYS
> + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
> + interconnect-names = "gfx-mem";
> +
> + iommus = <&adreno_smmu 0x0 0x401>;
> +
> + operating-points-v2 = <&gpu_opp_table>;
> + power-domains = <&rpmhpd RPMHPD_CX>;
> +
> + qcom,gmu = <&gmu>;
> +
> + #cooling-cells = <2>;
> +
> + status = "disabled";
> +
> + gpu_zap_shader: zap-shader {
> + memory-region = <&pil_gpu_mem>;
> + };
> +
> + gpu_opp_table: opp-table {
> + compatible = "operating-points-v2";
> +
> + opp-845000000 {
> + opp-hz = /bits/ 64 <845000000>;
> + required-opps = <&rpmhpd_opp_turbo>;
> + opp-peak-kBps = <7050000>;
JFI, An ongoing discussion in v3 regarding OPP tables and speed bins.
> + };
> +
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 3/8] dt-bindings: display/msm: gpu: Document A612 GPU
2025-12-05 13:58 ` Akhil P Oommen
@ 2025-12-05 20:53 ` Dmitry Baryshkov
0 siblings, 0 replies; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-12-05 20:53 UTC (permalink / raw)
To: Akhil P Oommen
Cc: Krzysztof Kozlowski, Rob Clark, Sean Paul, Konrad Dybcio,
Dmitry Baryshkov, Abhinav Kumar, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Jessica Zhang, Gaurav Kohli, Dan Carpenter,
linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang
On Fri, Dec 05, 2025 at 07:28:52PM +0530, Akhil P Oommen wrote:
> On 12/4/2025 9:04 PM, Krzysztof Kozlowski wrote:
> > On 04/12/2025 14:21, Akhil P Oommen wrote:
> >>
> >> clocks:
> >> - minItems: 2
> >> + minItems: 1
> >> maxItems: 7
> >>
> >> clock-names:
> >> - minItems: 2
> >> + minItems: 1
> >> maxItems: 7
> >>
> >> reg:
> >> @@ -388,6 +388,32 @@ allOf:
> >> - clocks
> >> - clock-names
> >>
> >> + - if:
> >> + properties:
> >> + compatible:
> >> + contains:
> >> + const: qcom,adreno-612.0
> >> + then:
> >> + properties:
> >> + clocks:
> >> + items:
> >> + - description: GPU Core clock
> >> +
> >> + clock-names:
> >> + items:
> >> + - const: core
> >> +
> >> + reg-names:
> >> + minItems: 1
> >> + items:
> >> + - const: kgsl_3d0_reg_memory
> >> + - const: cx_mem
> >> + - const: cx_dbgc
> >
> > The patch overall gets better, thanks, but I think I asked about this
> > already - why you don't have the list strict? I don't see reason for
> > making list flexible and I don't see the explanation in the commit msg.
> > Either this should be fixed-size (so minItems: 3 and same for reg:) or
> > you should document reasons WHY in the commit msg. Otherwise next time I
> > will ask the same. :(
>
> TBH, I was just following the convention I saw for the other entries
> here. We can make it more strict. But I am curious, in which case are
> num reg ranges flexible usually?
This might be a historical leftover. Feel free to send a patch dropping
min/maxItems for existing devices, if they never were flexible.
>
> Just to confirm, we should add this here for adreno-612.0:
>
> reg:
> minItems: 3
> maxItems: 3
>
> reg-names:
> minItems: 3
I think you can skip minItems completely.
> items:
> - const: kgsl_3d0_reg_memory
> - const: cx_mem
> - const: cx_dbgc
>
> -Akhil>
> >
> > Best regards,
> > Krzysztof
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-12-05 20:53 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-04 13:21 [PATCH v4 0/8] Support for Adreno 612 GPU - Respin Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 1/8] drm/msm/a6xx: Retrieve gmu core range by index Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 2/8] dt-bindings: display/msm: gpu: Simplify conditional schema logic Akhil P Oommen
2025-12-04 15:31 ` Krzysztof Kozlowski
2025-12-04 13:21 ` [PATCH v4 3/8] dt-bindings: display/msm: gpu: Document A612 GPU Akhil P Oommen
2025-12-04 15:34 ` Krzysztof Kozlowski
2025-12-05 13:58 ` Akhil P Oommen
2025-12-05 20:53 ` Dmitry Baryshkov
2025-12-04 13:21 ` [PATCH v4 4/8] dt-bindings: display/msm/rgmu: Document A612 RGMU Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 5/8] arm64: dts: qcom: talos: add the GPU SMMU node Akhil P Oommen
2025-12-04 13:21 ` [PATCH v4 6/8] arm64: dts: qcom: talos: Add gpu and rgmu nodes Akhil P Oommen
2025-12-05 20:50 ` Dmitry Baryshkov
2025-12-04 13:21 ` [PATCH v4 7/8] arm64: dts: qcom: talos: Add GPU cooling Akhil P Oommen
2025-12-05 10:10 ` Konrad Dybcio
2025-12-04 13:22 ` [PATCH v4 8/8] arm64: dts: qcom: qcs615-ride: Enable Adreno 612 GPU Akhil P Oommen
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).