* [PATCH v5 1/5] dt-bindings: display/msm/gmu: Update Adreno 623 bindings
2025-09-03 7:19 [PATCH v5 0/5] Support for Adreno 623 GPU Akhil P Oommen
@ 2025-09-03 7:19 ` Akhil P Oommen
2025-09-03 7:19 ` [PATCH v5 2/5] drm/msm/adreno: Add speedbin data for A623 GPU Akhil P Oommen
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Akhil P Oommen @ 2025-09-03 7:19 UTC (permalink / raw)
To: Rob Clark, Bjorn Andersson, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Dmitry Baryshkov, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jessica Zhang, Gaurav Kohli
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Puranam V G Tejaswi, Krzysztof Kozlowski,
Akhil P Oommen
From: Jie Zhang <quic_jiezh@quicinc.com>
Update Adreno 623's dt-binding to remove smmu_clk which is not required
for this GMU.
Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
.../devicetree/bindings/display/msm/gmu.yaml | 34 ++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/msm/gmu.yaml b/Documentation/devicetree/bindings/display/msm/gmu.yaml
index 4392aa7a4ffe2492d69a21e067be1f42e00016d8..afc1879357440c137cadeb2d9a74ae8459570a25 100644
--- a/Documentation/devicetree/bindings/display/msm/gmu.yaml
+++ b/Documentation/devicetree/bindings/display/msm/gmu.yaml
@@ -124,6 +124,40 @@ allOf:
contains:
enum:
- qcom,adreno-gmu-623.0
+ then:
+ properties:
+ reg:
+ items:
+ - description: Core GMU registers
+ - description: Resource controller registers
+ - description: GMU PDC registers
+ reg-names:
+ items:
+ - const: gmu
+ - const: rscc
+ - const: gmu_pdc
+ clocks:
+ items:
+ - description: GMU clock
+ - description: GPU CX clock
+ - description: GPU AXI clock
+ - description: GPU MEMNOC clock
+ - description: GPU AHB clock
+ - description: GPU HUB CX clock
+ clock-names:
+ items:
+ - const: gmu
+ - const: cxo
+ - const: axi
+ - const: memnoc
+ - const: ahb
+ - const: hub
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
- qcom,adreno-gmu-635.0
- qcom,adreno-gmu-660.1
- qcom,adreno-gmu-663.0
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v5 2/5] drm/msm/adreno: Add speedbin data for A623 GPU
2025-09-03 7:19 [PATCH v5 0/5] Support for Adreno 623 GPU Akhil P Oommen
2025-09-03 7:19 ` [PATCH v5 1/5] dt-bindings: display/msm/gmu: Update Adreno 623 bindings Akhil P Oommen
@ 2025-09-03 7:19 ` Akhil P Oommen
2025-09-03 9:30 ` Dmitry Baryshkov
2025-09-03 7:19 ` [PATCH v5 3/5] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes Akhil P Oommen
` (2 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Akhil P Oommen @ 2025-09-03 7:19 UTC (permalink / raw)
To: Rob Clark, Bjorn Andersson, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Dmitry Baryshkov, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jessica Zhang, Gaurav Kohli
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Puranam V G Tejaswi, Akhil P Oommen
Add the speedbin mappings for Adreno 623 GPU.
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
---
drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
index 00e1afd46b81546eec03e22cda9e9a604f6f3b60..6a793cc666d0b53e6869c2b82c65322f92e2486d 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
@@ -913,6 +913,11 @@ static const struct adreno_info a6xx_gpus[] = {
{ /* sentinel */ },
},
},
+ .speedbins = ADRENO_SPEEDBINS(
+ { 0, 0 },
+ { 185, 0 },
+ { 127, 1 },
+ ),
}, {
.chip_ids = ADRENO_CHIP_IDS(
0x06030001,
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v5 2/5] drm/msm/adreno: Add speedbin data for A623 GPU
2025-09-03 7:19 ` [PATCH v5 2/5] drm/msm/adreno: Add speedbin data for A623 GPU Akhil P Oommen
@ 2025-09-03 9:30 ` Dmitry Baryshkov
0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Baryshkov @ 2025-09-03 9:30 UTC (permalink / raw)
To: Akhil P Oommen
Cc: Rob Clark, Bjorn Andersson, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Dmitry Baryshkov, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jessica Zhang, Gaurav Kohli, linux-arm-msm, dri-devel, freedreno,
linux-kernel, devicetree, Jie Zhang, Puranam V G Tejaswi
On Wed, Sep 03, 2025 at 12:49:53PM +0530, Akhil P Oommen wrote:
> Add the speedbin mappings for Adreno 623 GPU.
>
> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
> ---
> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v5 3/5] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
2025-09-03 7:19 [PATCH v5 0/5] Support for Adreno 623 GPU Akhil P Oommen
2025-09-03 7:19 ` [PATCH v5 1/5] dt-bindings: display/msm/gmu: Update Adreno 623 bindings Akhil P Oommen
2025-09-03 7:19 ` [PATCH v5 2/5] drm/msm/adreno: Add speedbin data for A623 GPU Akhil P Oommen
@ 2025-09-03 7:19 ` Akhil P Oommen
2025-09-03 7:19 ` [PATCH v5 4/5] arm64: dts: qcom: qcs8300: Add GPU cooling Akhil P Oommen
2025-09-03 7:19 ` [PATCH v5 5/5] arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU Akhil P Oommen
4 siblings, 0 replies; 8+ messages in thread
From: Akhil P Oommen @ 2025-09-03 7:19 UTC (permalink / raw)
To: Rob Clark, Bjorn Andersson, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Dmitry Baryshkov, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jessica Zhang, Gaurav Kohli
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Puranam V G Tejaswi, Dmitry Baryshkov, Konrad Dybcio,
Akhil P Oommen
From: Jie Zhang <quic_jiezh@quicinc.com>
Add gpu and gmu nodes for qcs8300 chipset.
Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/qcs8300.dtsi | 105 +++++++++++++++++++++++++++++++++-
1 file changed, 104 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs8300.dtsi b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
index 0024a75916d0dc3d2f48912549d9544c124e27ff..00e6131e6b24def4ff9566c14398aaa86efe557c 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
@@ -640,9 +640,14 @@ ipcc: mailbox@408000 {
qfprom: efuse@784000 {
compatible = "qcom,qcs8300-qfprom", "qcom,qfprom";
- reg = <0x0 0x00784000 0x0 0x1200>;
+ reg = <0x0 0x00784000 0x0 0x2410>;
#address-cells = <1>;
#size-cells = <1>;
+
+ gpu_speed_bin: gpu_speed_bin@240c {
+ reg = <0x240c 0x1>;
+ bits = <0 8>;
+ };
};
gpi_dma0: dma-controller@900000 {
@@ -3903,6 +3908,104 @@ serdes0: phy@8909000 {
status = "disabled";
};
+ gpu: gpu@3d00000 {
+ compatible = "qcom,adreno-623.0", "qcom,adreno";
+ reg = <0x0 0x03d00000 0x0 0x40000>,
+ <0x0 0x03d9e000 0x0 0x1000>,
+ <0x0 0x03d61000 0x0 0x800>;
+ reg-names = "kgsl_3d0_reg_memory",
+ "cx_mem",
+ "cx_dbgc";
+ interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+ iommus = <&adreno_smmu 0 0xc00>,
+ <&adreno_smmu 1 0xc00>;
+ operating-points-v2 = <&gpu_opp_table>;
+ qcom,gmu = <&gmu>;
+ interconnects = <&gem_noc MASTER_GFX3D QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "gfx-mem";
+ #cooling-cells = <2>;
+
+ nvmem-cells = <&gpu_speed_bin>;
+ nvmem-cell-names = "speed_bin";
+
+ status = "disabled";
+
+ gpu_zap_shader: zap-shader {
+ memory-region = <&gpu_microcode_mem>;
+ };
+
+ gpu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-877000000 {
+ opp-hz = /bits/ 64 <877000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+ opp-peak-kBps = <12484375>;
+ opp-supported-hw = <0x1>;
+ };
+
+ opp-780000000 {
+ opp-hz = /bits/ 64 <780000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+ opp-peak-kBps = <10687500>;
+ opp-supported-hw = <0x1>;
+ };
+
+ opp-599000000 {
+ opp-hz = /bits/ 64 <599000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+ opp-peak-kBps = <8171875>;
+ opp-supported-hw = <0x3>;
+ };
+
+ opp-479000000 {
+ opp-hz = /bits/ 64 <479000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+ opp-peak-kBps = <5285156>;
+ opp-supported-hw = <0x3>;
+ };
+ };
+ };
+
+ gmu: gmu@3d6a000 {
+ compatible = "qcom,adreno-gmu-623.0", "qcom,adreno-gmu";
+ reg = <0x0 0x03d6a000 0x0 0x34000>,
+ <0x0 0x03de0000 0x0 0x10000>,
+ <0x0 0x0b290000 0x0 0x10000>;
+ reg-names = "gmu", "rscc", "gmu_pdc";
+ interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "hfi", "gmu";
+ 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_AHB_CLK>,
+ <&gpucc GPU_CC_HUB_CX_INT_CLK>;
+ clock-names = "gmu",
+ "cxo",
+ "axi",
+ "memnoc",
+ "ahb",
+ "hub";
+ power-domains = <&gpucc GPU_CC_CX_GDSC>,
+ <&gpucc GPU_CC_GX_GDSC>;
+ power-domain-names = "cx",
+ "gx";
+ iommus = <&adreno_smmu 5 0xc00>;
+ operating-points-v2 = <&gmu_opp_table>;
+
+ gmu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-500000000 {
+ opp-hz = /bits/ 64 <500000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+ };
+ };
+ };
+
gpucc: clock-controller@3d90000 {
compatible = "qcom,qcs8300-gpucc";
reg = <0x0 0x03d90000 0x0 0xa000>;
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v5 4/5] arm64: dts: qcom: qcs8300: Add GPU cooling
2025-09-03 7:19 [PATCH v5 0/5] Support for Adreno 623 GPU Akhil P Oommen
` (2 preceding siblings ...)
2025-09-03 7:19 ` [PATCH v5 3/5] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes Akhil P Oommen
@ 2025-09-03 7:19 ` Akhil P Oommen
2025-09-03 9:31 ` Dmitry Baryshkov
2025-09-03 7:19 ` [PATCH v5 5/5] arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU Akhil P Oommen
4 siblings, 1 reply; 8+ messages in thread
From: Akhil P Oommen @ 2025-09-03 7:19 UTC (permalink / raw)
To: Rob Clark, Bjorn Andersson, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Dmitry Baryshkov, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jessica Zhang, Gaurav Kohli
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Puranam V G Tejaswi, Akhil P Oommen
From: Gaurav Kohli <quic_gkohli@quicinc.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 reaching 115°C.
Signed-off-by: Gaurav Kohli <quic_gkohli@quicinc.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/qcs8300.dtsi | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs8300.dtsi b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
index 00e6131e6b24def4ff9566c14398aaa86efe557c..57b8bd6a089ce8b9a1a63be3fa778a633b4025a6 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
@@ -18,6 +18,7 @@
#include <dt-bindings/power/qcom,rpmhpd.h>
#include <dt-bindings/power/qcom-rpmpd.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/thermal/thermal.h>
/ {
interrupt-parent = <&intc>;
@@ -5846,12 +5847,25 @@ gpuss-0-thermal {
thermal-sensors = <&tsens0 5>;
trips {
+ gpuss0_alert0: trip-point0 {
+ temperature = <115000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+
gpuss0-critical {
temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
};
+
+ cooling-maps {
+ map0 {
+ trip = <&gpuss0_alert0>;
+ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
};
audio-thermal {
@@ -5966,12 +5980,25 @@ gpuss-1-thermal {
thermal-sensors = <&tsens1 5>;
trips {
+ gpuss1_alert0: trip-point0 {
+ temperature = <115000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+
gpuss1-critical {
temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
};
+
+ cooling-maps {
+ map0 {
+ trip = <&gpuss1_alert0>;
+ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
};
video-thermal {
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v5 4/5] arm64: dts: qcom: qcs8300: Add GPU cooling
2025-09-03 7:19 ` [PATCH v5 4/5] arm64: dts: qcom: qcs8300: Add GPU cooling Akhil P Oommen
@ 2025-09-03 9:31 ` Dmitry Baryshkov
0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Baryshkov @ 2025-09-03 9:31 UTC (permalink / raw)
To: Akhil P Oommen
Cc: Rob Clark, Bjorn Andersson, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Dmitry Baryshkov, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jessica Zhang, Gaurav Kohli, linux-arm-msm, dri-devel, freedreno,
linux-kernel, devicetree, Jie Zhang, Puranam V G Tejaswi
On Wed, Sep 03, 2025 at 12:49:55PM +0530, Akhil P Oommen wrote:
> From: Gaurav Kohli <quic_gkohli@quicinc.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 reaching 115°C.
>
> Signed-off-by: Gaurav Kohli <quic_gkohli@quicinc.com>
> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/qcs8300.dtsi | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v5 5/5] arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU
2025-09-03 7:19 [PATCH v5 0/5] Support for Adreno 623 GPU Akhil P Oommen
` (3 preceding siblings ...)
2025-09-03 7:19 ` [PATCH v5 4/5] arm64: dts: qcom: qcs8300: Add GPU cooling Akhil P Oommen
@ 2025-09-03 7:19 ` Akhil P Oommen
4 siblings, 0 replies; 8+ messages in thread
From: Akhil P Oommen @ 2025-09-03 7:19 UTC (permalink / raw)
To: Rob Clark, Bjorn Andersson, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Dmitry Baryshkov, Marijn Suijten, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jessica Zhang, Gaurav Kohli
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Puranam V G Tejaswi, Akhil P Oommen, Dmitry Baryshkov
From: Jie Zhang <quic_jiezh@quicinc.com>
Enable GPU for qcs8300-ride platform and provide path for zap
shader.
Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
index 8c166ead912c589c01d2bc7d13fa1b6892f6252b..c1f4993ee3bff54bba516a3b652e13f730b6353c 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -295,6 +295,14 @@ queue3 {
};
};
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/qcs8300/a623_zap.mbn";
+};
+
&pmm8650au_1_gpios {
usb2_en: usb2-en-state {
pins = "gpio7";
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread