* [PATCH v2 0/6] Support for Adreno 623 GPU
@ 2025-02-27 20:07 Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 1/6] drm/msm/a6xx: Split out gpucc register block Akhil P Oommen
` (7 more replies)
0 siblings, 8 replies; 23+ messages in thread
From: Akhil P Oommen @ 2025-02-27 20:07 UTC (permalink / raw)
To: Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Akhil P Oommen, Krzysztof Kozlowski
This series adds support for A623 GPU found in QCS8300 chipsets. This
GPU IP is very similar to A621 GPU, except for the UBWC configuration
and the GMU firmware.
Both DT patches are for Bjorn and rest of the patches for Rob Clark to
pick up.
---
Changes in v2:
- Fix hwcg config (Konrad)
- Split gpucc reg list patch (Rob)
- Rebase on msm-next tip
- Link to v1: https://lore.kernel.org/r/20250213-a623-gpu-support-v1-0-993c65c39fd2@quicinc.com
---
Jie Zhang (6):
drm/msm/a6xx: Split out gpucc register block
drm/msm/a6xx: Fix gpucc register block for A621
drm/msm/a6xx: Add support for Adreno 623
dt-bindings: display/msm/gmu: Add Adreno 623 GMU
arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU
.../devicetree/bindings/display/msm/gmu.yaml | 1 +
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 8 ++
arch/arm64/boot/dts/qcom/qcs8300.dtsi | 93 ++++++++++++++++++++++
drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 13 ++-
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h | 17 ++++
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 ++
8 files changed, 171 insertions(+), 3 deletions(-)
---
base-commit: 89839e69f6154feecd79bd01171375225b0296e9
change-id: 20250213-a623-gpu-support-f6698603fb85
prerequisite-change-id: 20250131-b4-branch-gfx-smmu-b03261963064:v5
prerequisite-patch-id: f8fd1a2020c940e595e58a8bd3c55d00d3d87271
prerequisite-patch-id: 08a0540f75b0f95fd2018b38c9ed5c6f96433b4d
Best regards,
--
Akhil P Oommen <quic_akhilpo@quicinc.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH v2 1/6] drm/msm/a6xx: Split out gpucc register block
2025-02-27 20:07 [PATCH v2 0/6] Support for Adreno 623 GPU Akhil P Oommen
@ 2025-02-27 20:07 ` Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 2/6] drm/msm/a6xx: Fix gpucc register block for A621 Akhil P Oommen
` (6 subsequent siblings)
7 siblings, 0 replies; 23+ messages in thread
From: Akhil P Oommen @ 2025-02-27 20:07 UTC (permalink / raw)
To: Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Akhil P Oommen
From: Jie Zhang <quic_jiezh@quicinc.com>
Some GPUs have different memory map for GPUCC block. So split out the
gpucc range from a6xx_gmu_cx_registers to a separate block to
accommodate those GPUs.
Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
---
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 8 +++++---
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h | 5 +++++
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
index 0fcae53c0b140b42d9af313695ad6121c9fc5618..81763876e4029713994b47729a2cec7e1dd3fbb9 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -1214,18 +1214,20 @@ static void a6xx_get_gmu_registers(struct msm_gpu *gpu,
struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
a6xx_state->gmu_registers = state_kcalloc(a6xx_state,
- 3, sizeof(*a6xx_state->gmu_registers));
+ 4, sizeof(*a6xx_state->gmu_registers));
if (!a6xx_state->gmu_registers)
return;
- a6xx_state->nr_gmu_registers = 3;
+ a6xx_state->nr_gmu_registers = 4;
/* Get the CX GMU registers from AHB */
_a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gmu_reglist[0],
&a6xx_state->gmu_registers[0], false);
_a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gmu_reglist[1],
&a6xx_state->gmu_registers[1], true);
+ _a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gpucc_reg,
+ &a6xx_state->gmu_registers[2], false);
if (!a6xx_gmu_gx_is_on(&a6xx_gpu->gmu))
return;
@@ -1234,7 +1236,7 @@ static void a6xx_get_gmu_registers(struct msm_gpu *gpu,
gpu_write(gpu, REG_A6XX_GMU_AO_AHB_FENCE_CTRL, 0);
_a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gmu_reglist[2],
- &a6xx_state->gmu_registers[2], false);
+ &a6xx_state->gmu_registers[3], false);
}
static struct msm_gpu_state_bo *a6xx_snapshot_gmu_bo(
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
index dd4c28a8d9233d8079abaf0065317c1d613dba32..31c7462ab6d7b877c55abc04b98c0a80dac87759 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
@@ -363,6 +363,9 @@ static const u32 a6xx_gmu_cx_registers[] = {
0x51e0, 0x51e2, 0x51f0, 0x51f0, 0x5200, 0x5201,
/* GMU AO */
0x9300, 0x9316, 0x9400, 0x9400,
+};
+
+static const u32 a6xx_gmu_gpucc_registers[] = {
/* GPU CC */
0x9800, 0x9812, 0x9840, 0x9852, 0x9c00, 0x9c04, 0x9c07, 0x9c0b,
0x9c15, 0x9c1c, 0x9c1e, 0x9c2d, 0x9c3c, 0x9c3d, 0x9c3f, 0x9c40,
@@ -386,6 +389,8 @@ static const struct a6xx_registers a6xx_gmu_reglist[] = {
REGS(a6xx_gmu_gx_registers, 0, 0),
};
+static const struct a6xx_registers a6xx_gpucc_reg = REGS(a6xx_gmu_gpucc_registers, 0, 0);
+
static u32 a6xx_get_cp_roq_size(struct msm_gpu *gpu);
static u32 a7xx_get_cp_roq_size(struct msm_gpu *gpu);
--
2.48.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 2/6] drm/msm/a6xx: Fix gpucc register block for A621
2025-02-27 20:07 [PATCH v2 0/6] Support for Adreno 623 GPU Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 1/6] drm/msm/a6xx: Split out gpucc register block Akhil P Oommen
@ 2025-02-27 20:07 ` Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623 Akhil P Oommen
` (5 subsequent siblings)
7 siblings, 0 replies; 23+ messages in thread
From: Akhil P Oommen @ 2025-02-27 20:07 UTC (permalink / raw)
To: Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Akhil P Oommen
From: Jie Zhang <quic_jiezh@quicinc.com>
Adreno 621 has a different memory map for GPUCC block. So update
a6xx_gpu_state code to dump the correct set of gpucc registers.
Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
---
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 9 +++++++--
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h | 12 ++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
index 81763876e4029713994b47729a2cec7e1dd3fbb9..2c10474ccc95cf2515c6583007a9b5cc478f836c 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -1226,8 +1226,13 @@ static void a6xx_get_gmu_registers(struct msm_gpu *gpu,
&a6xx_state->gmu_registers[0], false);
_a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gmu_reglist[1],
&a6xx_state->gmu_registers[1], true);
- _a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gpucc_reg,
- &a6xx_state->gmu_registers[2], false);
+
+ if (adreno_is_a621(adreno_gpu))
+ _a6xx_get_gmu_registers(gpu, a6xx_state, &a621_gpucc_reg,
+ &a6xx_state->gmu_registers[2], false);
+ else
+ _a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gpucc_reg,
+ &a6xx_state->gmu_registers[2], false);
if (!a6xx_gmu_gx_is_on(&a6xx_gpu->gmu))
return;
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
index 31c7462ab6d7b877c55abc04b98c0a80dac87759..e545106c70be713b07904187a9e246e08499f228 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
@@ -376,6 +376,17 @@ static const u32 a6xx_gmu_gpucc_registers[] = {
0xbc00, 0xbc16, 0xbc20, 0xbc27,
};
+static const u32 a621_gmu_gpucc_registers[] = {
+ /* GPU CC */
+ 0x9800, 0x980e, 0x9c00, 0x9c0e, 0xb000, 0xb004, 0xb400, 0xb404,
+ 0xb800, 0xb804, 0xbc00, 0xbc05, 0xbc14, 0xbc1d, 0xbc2a, 0xbc30,
+ 0xbc32, 0xbc32, 0xbc41, 0xbc55, 0xbc66, 0xbc68, 0xbc78, 0xbc7a,
+ 0xbc89, 0xbc8a, 0xbc9c, 0xbc9e, 0xbca0, 0xbca3, 0xbcb3, 0xbcb5,
+ 0xbcc5, 0xbcc7, 0xbcd6, 0xbcd8, 0xbce8, 0xbce9, 0xbcf9, 0xbcfc,
+ 0xbd0b, 0xbd0c, 0xbd1c, 0xbd1e, 0xbd40, 0xbd70, 0xbe00, 0xbe16,
+ 0xbe20, 0xbe2d,
+};
+
static const u32 a6xx_gmu_cx_rscc_registers[] = {
/* GPU RSCC */
0x008c, 0x008c, 0x0101, 0x0102, 0x0340, 0x0342, 0x0344, 0x0347,
@@ -390,6 +401,7 @@ static const struct a6xx_registers a6xx_gmu_reglist[] = {
};
static const struct a6xx_registers a6xx_gpucc_reg = REGS(a6xx_gmu_gpucc_registers, 0, 0);
+static const struct a6xx_registers a621_gpucc_reg = REGS(a621_gmu_gpucc_registers, 0, 0);
static u32 a6xx_get_cp_roq_size(struct msm_gpu *gpu);
static u32 a7xx_get_cp_roq_size(struct msm_gpu *gpu);
--
2.48.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623
2025-02-27 20:07 [PATCH v2 0/6] Support for Adreno 623 GPU Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 1/6] drm/msm/a6xx: Split out gpucc register block Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 2/6] drm/msm/a6xx: Fix gpucc register block for A621 Akhil P Oommen
@ 2025-02-27 20:07 ` Akhil P Oommen
2025-02-27 20:29 ` Konrad Dybcio
2025-02-27 23:26 ` Dmitry Baryshkov
2025-02-27 20:07 ` [PATCH v2 4/6] dt-bindings: display/msm/gmu: Add Adreno 623 GMU Akhil P Oommen
` (4 subsequent siblings)
7 siblings, 2 replies; 23+ messages in thread
From: Akhil P Oommen @ 2025-02-27 20:07 UTC (permalink / raw)
To: Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Akhil P Oommen
From: Jie Zhang <quic_jiezh@quicinc.com>
Add support for Adreno 623 GPU found in QCS8300 chipsets.
Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
---
drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++++++++++++++++++++++++
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++++++++
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 +++++
4 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
index edffb7737a97b268bb2986d557969e651988a344..53e2ff4406d8f0afe474aaafbf0e459ef8f4577d 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
@@ -879,6 +879,35 @@ static const struct adreno_info a6xx_gpus[] = {
{ 0, 0 },
{ 137, 1 },
),
+ }, {
+ .chip_ids = ADRENO_CHIP_IDS(0x06020300),
+ .family = ADRENO_6XX_GEN3,
+ .fw = {
+ [ADRENO_FW_SQE] = "a650_sqe.fw",
+ [ADRENO_FW_GMU] = "a623_gmu.bin",
+ },
+ .gmem = SZ_512K,
+ .inactive_period = DRM_MSM_INACTIVE_PERIOD,
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
+ ADRENO_QUIRK_HAS_HW_APRIV,
+ .init = a6xx_gpu_init,
+ .a6xx = &(const struct a6xx_info) {
+ .hwcg = a690_hwcg,
+ .protect = &a650_protect,
+ .gmu_cgc_mode = 0x00020200,
+ .prim_fifo_threshold = 0x00010000,
+ .bcms = (const struct a6xx_bcm[]) {
+ { .name = "SH0", .buswidth = 16 },
+ { .name = "MC0", .buswidth = 4 },
+ {
+ .name = "ACV",
+ .fixed = true,
+ .perfmode = BIT(3),
+ },
+ { /* sentinel */ },
+ },
+ },
+ .address_space_size = SZ_16G,
}, {
.chip_ids = ADRENO_CHIP_IDS(
0x06030001,
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 0ae29a7c8a4d3f74236a35cc919f69d5c0a384a0..1820c167fcee609deee3d49e7b5dd3736da23d99 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -616,6 +616,14 @@ static void a6xx_calc_ubwc_config(struct adreno_gpu *gpu)
gpu->ubwc_config.uavflagprd_inv = 2;
}
+ if (adreno_is_a623(gpu)) {
+ gpu->ubwc_config.highest_bank_bit = 16;
+ gpu->ubwc_config.amsbc = 1;
+ gpu->ubwc_config.rgb565_predicator = 1;
+ gpu->ubwc_config.uavflagprd_inv = 2;
+ gpu->ubwc_config.macrotile_mode = 1;
+ }
+
if (adreno_is_a640_family(gpu))
gpu->ubwc_config.amsbc = 1;
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
index 2c10474ccc95cf2515c6583007a9b5cc478f836c..3222a406d08950008ca8c67a9b78cdd0e98e888c 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -1227,7 +1227,7 @@ static void a6xx_get_gmu_registers(struct msm_gpu *gpu,
_a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gmu_reglist[1],
&a6xx_state->gmu_registers[1], true);
- if (adreno_is_a621(adreno_gpu))
+ if (adreno_is_a621(adreno_gpu) || adreno_is_a623(adreno_gpu))
_a6xx_get_gmu_registers(gpu, a6xx_state, &a621_gpucc_reg,
&a6xx_state->gmu_registers[2], false);
else
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
index dcf454629ce037b2a8274a6699674ad754ce1f07..92caba3584da0400b44a903e465814af165d40a3 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
@@ -442,6 +442,11 @@ static inline int adreno_is_a621(const struct adreno_gpu *gpu)
return gpu->info->chip_ids[0] == 0x06020100;
}
+static inline int adreno_is_a623(const struct adreno_gpu *gpu)
+{
+ return gpu->info->chip_ids[0] == 0x06020300;
+}
+
static inline int adreno_is_a630(const struct adreno_gpu *gpu)
{
return adreno_is_revn(gpu, 630);
--
2.48.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 4/6] dt-bindings: display/msm/gmu: Add Adreno 623 GMU
2025-02-27 20:07 [PATCH v2 0/6] Support for Adreno 623 GPU Akhil P Oommen
` (2 preceding siblings ...)
2025-02-27 20:07 ` [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623 Akhil P Oommen
@ 2025-02-27 20:07 ` Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes Akhil P Oommen
` (3 subsequent siblings)
7 siblings, 0 replies; 23+ messages in thread
From: Akhil P Oommen @ 2025-02-27 20:07 UTC (permalink / raw)
To: Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Akhil P Oommen, Krzysztof Kozlowski
From: Jie Zhang <quic_jiezh@quicinc.com>
Document Adreno 623 GMU in the dt-binding specification.
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>
---
Documentation/devicetree/bindings/display/msm/gmu.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/display/msm/gmu.yaml b/Documentation/devicetree/bindings/display/msm/gmu.yaml
index ab884e2364293ed4e79ddfec35b3c5f4d14ae853..4392aa7a4ffe2492d69a21e067be1f42e00016d8 100644
--- a/Documentation/devicetree/bindings/display/msm/gmu.yaml
+++ b/Documentation/devicetree/bindings/display/msm/gmu.yaml
@@ -123,6 +123,7 @@ allOf:
compatible:
contains:
enum:
+ - qcom,adreno-gmu-623.0
- qcom,adreno-gmu-635.0
- qcom,adreno-gmu-660.1
- qcom,adreno-gmu-663.0
--
2.48.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
2025-02-27 20:07 [PATCH v2 0/6] Support for Adreno 623 GPU Akhil P Oommen
` (3 preceding siblings ...)
2025-02-27 20:07 ` [PATCH v2 4/6] dt-bindings: display/msm/gmu: Add Adreno 623 GMU Akhil P Oommen
@ 2025-02-27 20:07 ` Akhil P Oommen
2025-04-14 11:01 ` Konrad Dybcio
2025-02-27 20:07 ` [PATCH v2 6/6] arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU Akhil P Oommen
` (2 subsequent siblings)
7 siblings, 1 reply; 23+ messages in thread
From: Akhil P Oommen @ 2025-02-27 20:07 UTC (permalink / raw)
To: Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, 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>
---
arch/arm64/boot/dts/qcom/qcs8300.dtsi | 93 +++++++++++++++++++++++++++++++++++
1 file changed, 93 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs8300.dtsi b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
index f1c90db7b0e689035fbbaaa551611be34adf9ab6..2dc487dcc584cd0a057e18c53e2f945b8636ad14 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
@@ -2660,6 +2660,99 @@ 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>;
+
+ 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-780000000 {
+ opp-hz = /bits/ 64 <780000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+ opp-peak-kBps = <10687500>;
+ };
+
+ opp-599000000 {
+ opp-hz = /bits/ 64 <599000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+ opp-peak-kBps = <8171875>;
+ };
+
+ opp-479000000 {
+ opp-hz = /bits/ 64 <479000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+ opp-peak-kBps = <5285156>;
+ };
+ };
+ };
+
+ 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>,
+ <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
+ clock-names = "gmu",
+ "cxo",
+ "axi",
+ "memnoc",
+ "ahb",
+ "hub",
+ "smmu_vote";
+ 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-200000000 {
+ opp-hz = /bits/ 64 <200000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+ };
+ };
+ };
+
gpucc: clock-controller@3d90000 {
compatible = "qcom,qcs8300-gpucc";
reg = <0x0 0x03d90000 0x0 0xa000>;
--
2.48.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 6/6] arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU
2025-02-27 20:07 [PATCH v2 0/6] Support for Adreno 623 GPU Akhil P Oommen
` (4 preceding siblings ...)
2025-02-27 20:07 ` [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes Akhil P Oommen
@ 2025-02-27 20:07 ` Akhil P Oommen
2025-02-28 14:23 ` [PATCH v2 0/6] Support for " Rob Herring (Arm)
2025-03-17 6:09 ` Akhil P Oommen
7 siblings, 0 replies; 23+ messages in thread
From: Akhil P Oommen @ 2025-02-27 20:07 UTC (permalink / raw)
To: Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Akhil P Oommen
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 b5c9f89b34356bbf8387643e8702a2a5f50b332f..5f6c6a1f59655bee62ca9ab09c4ee60c1b826a66 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -285,6 +285,14 @@ queue3 {
};
};
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/qcs8300/a623_zap.mbn";
+};
+
&qupv3_id_0 {
status = "okay";
};
--
2.48.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623
2025-02-27 20:07 ` [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623 Akhil P Oommen
@ 2025-02-27 20:29 ` Konrad Dybcio
2025-02-27 21:06 ` Akhil P Oommen
2025-02-27 23:26 ` Dmitry Baryshkov
1 sibling, 1 reply; 23+ messages in thread
From: Konrad Dybcio @ 2025-02-27 20:29 UTC (permalink / raw)
To: Akhil P Oommen, Rob Clark, 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,
Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang
On 27.02.2025 9:07 PM, Akhil P Oommen wrote:
> From: Jie Zhang <quic_jiezh@quicinc.com>
>
> Add support for Adreno 623 GPU found in QCS8300 chipsets.
>
> Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
> ---
> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++++++++++++++++++++++++
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++++++++
> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 +-
> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 +++++
> 4 files changed, 43 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
> index edffb7737a97b268bb2986d557969e651988a344..53e2ff4406d8f0afe474aaafbf0e459ef8f4577d 100644
> --- a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
> +++ b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
> @@ -879,6 +879,35 @@ static const struct adreno_info a6xx_gpus[] = {
> { 0, 0 },
> { 137, 1 },
> ),
> + }, {
> + .chip_ids = ADRENO_CHIP_IDS(0x06020300),
> + .family = ADRENO_6XX_GEN3,
> + .fw = {
> + [ADRENO_FW_SQE] = "a650_sqe.fw",
> + [ADRENO_FW_GMU] = "a623_gmu.bin",
> + },
> + .gmem = SZ_512K,
> + .inactive_period = DRM_MSM_INACTIVE_PERIOD,
> + .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
> + ADRENO_QUIRK_HAS_HW_APRIV,
> + .init = a6xx_gpu_init,
> + .a6xx = &(const struct a6xx_info) {
> + .hwcg = a690_hwcg,
You used the a620 table before, I'm assuming a690 is correct after all?
Konrad
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623
2025-02-27 20:29 ` Konrad Dybcio
@ 2025-02-27 21:06 ` Akhil P Oommen
2025-02-27 21:45 ` Konrad Dybcio
0 siblings, 1 reply; 23+ messages in thread
From: Akhil P Oommen @ 2025-02-27 21:06 UTC (permalink / raw)
To: Konrad Dybcio, Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang
On 2/28/2025 1:59 AM, Konrad Dybcio wrote:
> On 27.02.2025 9:07 PM, Akhil P Oommen wrote:
>> From: Jie Zhang <quic_jiezh@quicinc.com>
>>
>> Add support for Adreno 623 GPU found in QCS8300 chipsets.
>>
>> Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
>> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
>> ---
>> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++++++++++++++++++++++++
>> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++++++++
>> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 +-
>> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 +++++
>> 4 files changed, 43 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
>> index edffb7737a97b268bb2986d557969e651988a344..53e2ff4406d8f0afe474aaafbf0e459ef8f4577d 100644
>> --- a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
>> +++ b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
>> @@ -879,6 +879,35 @@ static const struct adreno_info a6xx_gpus[] = {
>> { 0, 0 },
>> { 137, 1 },
>> ),
>> + }, {
>> + .chip_ids = ADRENO_CHIP_IDS(0x06020300),
>> + .family = ADRENO_6XX_GEN3,
>> + .fw = {
>> + [ADRENO_FW_SQE] = "a650_sqe.fw",
>> + [ADRENO_FW_GMU] = "a623_gmu.bin",
>> + },
>> + .gmem = SZ_512K,
>> + .inactive_period = DRM_MSM_INACTIVE_PERIOD,
>> + .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
>> + ADRENO_QUIRK_HAS_HW_APRIV,
>> + .init = a6xx_gpu_init,
>> + .a6xx = &(const struct a6xx_info) {
>> + .hwcg = a690_hwcg,
>
> You used the a620 table before, I'm assuming a690 is correct after all?
Correct. a690_hwcg array has the recommended values for a623.
-Akhil.
>
> Konrad
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623
2025-02-27 21:06 ` Akhil P Oommen
@ 2025-02-27 21:45 ` Konrad Dybcio
0 siblings, 0 replies; 23+ messages in thread
From: Konrad Dybcio @ 2025-02-27 21:45 UTC (permalink / raw)
To: Akhil P Oommen, Konrad Dybcio, Rob Clark, 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,
Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang
On 27.02.2025 10:06 PM, Akhil P Oommen wrote:
> On 2/28/2025 1:59 AM, Konrad Dybcio wrote:
>> On 27.02.2025 9:07 PM, Akhil P Oommen wrote:
>>> From: Jie Zhang <quic_jiezh@quicinc.com>
>>>
>>> Add support for Adreno 623 GPU found in QCS8300 chipsets.
>>>
>>> Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
>>> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
>>> ---
>>> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++++++++++++++++++++++++
>>> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++++++++
>>> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 +-
>>> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 +++++
>>> 4 files changed, 43 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
>>> index edffb7737a97b268bb2986d557969e651988a344..53e2ff4406d8f0afe474aaafbf0e459ef8f4577d 100644
>>> --- a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
>>> +++ b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
>>> @@ -879,6 +879,35 @@ static const struct adreno_info a6xx_gpus[] = {
>>> { 0, 0 },
>>> { 137, 1 },
>>> ),
>>> + }, {
>>> + .chip_ids = ADRENO_CHIP_IDS(0x06020300),
>>> + .family = ADRENO_6XX_GEN3,
>>> + .fw = {
>>> + [ADRENO_FW_SQE] = "a650_sqe.fw",
>>> + [ADRENO_FW_GMU] = "a623_gmu.bin",
>>> + },
>>> + .gmem = SZ_512K,
>>> + .inactive_period = DRM_MSM_INACTIVE_PERIOD,
>>> + .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
>>> + ADRENO_QUIRK_HAS_HW_APRIV,
>>> + .init = a6xx_gpu_init,
>>> + .a6xx = &(const struct a6xx_info) {
>>> + .hwcg = a690_hwcg,
>>
>> You used the a620 table before, I'm assuming a690 is correct after all?
>
> Correct. a690_hwcg array has the recommended values for a623.
Thanks for double checking
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623
2025-02-27 20:07 ` [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623 Akhil P Oommen
2025-02-27 20:29 ` Konrad Dybcio
@ 2025-02-27 23:26 ` Dmitry Baryshkov
2025-02-28 8:13 ` Akhil P Oommen
1 sibling, 1 reply; 23+ messages in thread
From: Dmitry Baryshkov @ 2025-02-27 23:26 UTC (permalink / raw)
To: Akhil P Oommen
Cc: Rob Clark, Sean Paul, Konrad Dybcio, Abhinav Kumar,
Marijn Suijten, David Airlie, Simona Vetter, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, linux-arm-msm,
dri-devel, freedreno, linux-kernel, devicetree, Jie Zhang
On Fri, Feb 28, 2025 at 01:37:51AM +0530, Akhil P Oommen wrote:
> From: Jie Zhang <quic_jiezh@quicinc.com>
>
> Add support for Adreno 623 GPU found in QCS8300 chipsets.
>
> Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
> ---
> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++++++++++++++++++++++++
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++++++++
> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 +-
> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 +++++
> 4 files changed, 43 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> index 0ae29a7c8a4d3f74236a35cc919f69d5c0a384a0..1820c167fcee609deee3d49e7b5dd3736da23d99 100644
> --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> @@ -616,6 +616,14 @@ static void a6xx_calc_ubwc_config(struct adreno_gpu *gpu)
> gpu->ubwc_config.uavflagprd_inv = 2;
> }
>
> + if (adreno_is_a623(gpu)) {
> + gpu->ubwc_config.highest_bank_bit = 16;
Just to doublecheck, the MDSS patch for QCS8300 used HBB=2, which
means 15. Is 16 correct here? Or might the be a mistake in the MDSS
patch?
> + gpu->ubwc_config.amsbc = 1;
> + gpu->ubwc_config.rgb565_predicator = 1;
> + gpu->ubwc_config.uavflagprd_inv = 2;
> + gpu->ubwc_config.macrotile_mode = 1;
> + }
> +
> if (adreno_is_a640_family(gpu))
> gpu->ubwc_config.amsbc = 1;
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623
2025-02-27 23:26 ` Dmitry Baryshkov
@ 2025-02-28 8:13 ` Akhil P Oommen
2025-02-28 10:17 ` Dmitry Baryshkov
0 siblings, 1 reply; 23+ messages in thread
From: Akhil P Oommen @ 2025-02-28 8:13 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Rob Clark, Sean Paul, Konrad Dybcio, Abhinav Kumar,
Marijn Suijten, David Airlie, Simona Vetter, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, linux-arm-msm,
dri-devel, freedreno, linux-kernel, devicetree, Jie Zhang
On 2/28/2025 4:56 AM, Dmitry Baryshkov wrote:
> On Fri, Feb 28, 2025 at 01:37:51AM +0530, Akhil P Oommen wrote:
>> From: Jie Zhang <quic_jiezh@quicinc.com>
>>
>> Add support for Adreno 623 GPU found in QCS8300 chipsets.
>>
>> Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
>> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
>> ---
>> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++++++++++++++++++++++++
>> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++++++++
>> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 +-
>> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 +++++
>> 4 files changed, 43 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
>> index 0ae29a7c8a4d3f74236a35cc919f69d5c0a384a0..1820c167fcee609deee3d49e7b5dd3736da23d99 100644
>> --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
>> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
>> @@ -616,6 +616,14 @@ static void a6xx_calc_ubwc_config(struct adreno_gpu *gpu)
>> gpu->ubwc_config.uavflagprd_inv = 2;
>> }
>>
>> + if (adreno_is_a623(gpu)) {
>> + gpu->ubwc_config.highest_bank_bit = 16;
>
> Just to doublecheck, the MDSS patch for QCS8300 used HBB=2, which
> means 15. Is 16 correct here? Or might the be a mistake in the MDSS
> patch?
https://patchwork.freedesktop.org/patch/632957/
I see HBB=3 here.
-Akhil
>
>> + gpu->ubwc_config.amsbc = 1;
>> + gpu->ubwc_config.rgb565_predicator = 1;
>> + gpu->ubwc_config.uavflagprd_inv = 2;
>> + gpu->ubwc_config.macrotile_mode = 1;
>> + }
>> +
>> if (adreno_is_a640_family(gpu))
>> gpu->ubwc_config.amsbc = 1;
>>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623
2025-02-28 8:13 ` Akhil P Oommen
@ 2025-02-28 10:17 ` Dmitry Baryshkov
0 siblings, 0 replies; 23+ messages in thread
From: Dmitry Baryshkov @ 2025-02-28 10:17 UTC (permalink / raw)
To: Akhil P Oommen
Cc: Rob Clark, Sean Paul, Konrad Dybcio, Abhinav Kumar,
Marijn Suijten, David Airlie, Simona Vetter, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, linux-arm-msm,
dri-devel, freedreno, linux-kernel, devicetree, Jie Zhang
On Fri, Feb 28, 2025 at 01:43:12PM +0530, Akhil P Oommen wrote:
> On 2/28/2025 4:56 AM, Dmitry Baryshkov wrote:
> > On Fri, Feb 28, 2025 at 01:37:51AM +0530, Akhil P Oommen wrote:
> >> From: Jie Zhang <quic_jiezh@quicinc.com>
> >>
> >> Add support for Adreno 623 GPU found in QCS8300 chipsets.
> >>
> >> Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
> >> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
> >> ---
> >> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++++++++++++++++++++++++
> >> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++++++++
> >> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 +-
> >> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 +++++
> >> 4 files changed, 43 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> >> index 0ae29a7c8a4d3f74236a35cc919f69d5c0a384a0..1820c167fcee609deee3d49e7b5dd3736da23d99 100644
> >> --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> >> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> >> @@ -616,6 +616,14 @@ static void a6xx_calc_ubwc_config(struct adreno_gpu *gpu)
> >> gpu->ubwc_config.uavflagprd_inv = 2;
> >> }
> >>
> >> + if (adreno_is_a623(gpu)) {
> >> + gpu->ubwc_config.highest_bank_bit = 16;
> >
> > Just to doublecheck, the MDSS patch for QCS8300 used HBB=2, which
> > means 15. Is 16 correct here? Or might the be a mistake in the MDSS
> > patch?
>
> https://patchwork.freedesktop.org/patch/632957/
> I see HBB=3 here.
Indeed. Excuse me for the noise.
>
> -Akhil
>
> >
> >> + gpu->ubwc_config.amsbc = 1;
> >> + gpu->ubwc_config.rgb565_predicator = 1;
> >> + gpu->ubwc_config.uavflagprd_inv = 2;
> >> + gpu->ubwc_config.macrotile_mode = 1;
> >> + }
> >> +
> >> if (adreno_is_a640_family(gpu))
> >> gpu->ubwc_config.amsbc = 1;
> >>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 0/6] Support for Adreno 623 GPU
2025-02-27 20:07 [PATCH v2 0/6] Support for Adreno 623 GPU Akhil P Oommen
` (5 preceding siblings ...)
2025-02-27 20:07 ` [PATCH v2 6/6] arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU Akhil P Oommen
@ 2025-02-28 14:23 ` Rob Herring (Arm)
2025-03-11 6:16 ` Akhil P Oommen
2025-03-17 6:09 ` Akhil P Oommen
7 siblings, 1 reply; 23+ messages in thread
From: Rob Herring (Arm) @ 2025-02-28 14:23 UTC (permalink / raw)
To: Akhil P Oommen
Cc: linux-arm-msm, Simona Vetter, linux-kernel, Conor Dooley,
Abhinav Kumar, Jie Zhang, Krzysztof Kozlowski, Konrad Dybcio,
dri-devel, Thomas Zimmermann, Maxime Ripard, freedreno,
Marijn Suijten, Sean Paul, Maarten Lankhorst, Rob Clark,
Dmitry Baryshkov, David Airlie, Krzysztof Kozlowski,
Bjorn Andersson, devicetree
On Fri, 28 Feb 2025 01:37:48 +0530, Akhil P Oommen wrote:
> This series adds support for A623 GPU found in QCS8300 chipsets. This
> GPU IP is very similar to A621 GPU, except for the UBWC configuration
> and the GMU firmware.
>
> Both DT patches are for Bjorn and rest of the patches for Rob Clark to
> pick up.
>
> ---
> Changes in v2:
> - Fix hwcg config (Konrad)
> - Split gpucc reg list patch (Rob)
> - Rebase on msm-next tip
> - Link to v1: https://lore.kernel.org/r/20250213-a623-gpu-support-v1-0-993c65c39fd2@quicinc.com
>
> ---
> Jie Zhang (6):
> drm/msm/a6xx: Split out gpucc register block
> drm/msm/a6xx: Fix gpucc register block for A621
> drm/msm/a6xx: Add support for Adreno 623
> dt-bindings: display/msm/gmu: Add Adreno 623 GMU
> arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
> arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU
>
> .../devicetree/bindings/display/msm/gmu.yaml | 1 +
> arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 8 ++
> arch/arm64/boot/dts/qcom/qcs8300.dtsi | 93 ++++++++++++++++++++++
> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++
> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 13 ++-
> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h | 17 ++++
> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 ++
> 8 files changed, 171 insertions(+), 3 deletions(-)
> ---
> base-commit: 89839e69f6154feecd79bd01171375225b0296e9
> change-id: 20250213-a623-gpu-support-f6698603fb85
> prerequisite-change-id: 20250131-b4-branch-gfx-smmu-b03261963064:v5
> prerequisite-patch-id: f8fd1a2020c940e595e58a8bd3c55d00d3d87271
> prerequisite-patch-id: 08a0540f75b0f95fd2018b38c9ed5c6f96433b4d
>
> Best regards,
> --
> Akhil P Oommen <quic_akhilpo@quicinc.com>
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/qcom/' for 20250228-a623-gpu-support-v2-0-aea654ecc1d3@quicinc.com:
arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:0: 'gcc_gpu_memnoc_gfx_clk' was expected
from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:1: 'gcc_gpu_snoc_dvm_gfx_clk' was expected
from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:2: 'gpu_cc_ahb_clk' was expected
from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:3: 'gpu_cc_hlos1_vote_gpu_smmu_clk' was expected
from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:4: 'gpu_cc_cx_gmu_clk' was expected
from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:5: 'gpu_cc_hub_cx_int_clk' was expected
from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 0/6] Support for Adreno 623 GPU
2025-02-28 14:23 ` [PATCH v2 0/6] Support for " Rob Herring (Arm)
@ 2025-03-11 6:16 ` Akhil P Oommen
0 siblings, 0 replies; 23+ messages in thread
From: Akhil P Oommen @ 2025-03-11 6:16 UTC (permalink / raw)
To: Rob Herring (Arm)
Cc: linux-arm-msm, Simona Vetter, linux-kernel, Conor Dooley,
Abhinav Kumar, Jie Zhang, Krzysztof Kozlowski, Konrad Dybcio,
dri-devel, Thomas Zimmermann, Maxime Ripard, freedreno,
Marijn Suijten, Sean Paul, Maarten Lankhorst, Rob Clark,
Dmitry Baryshkov, David Airlie, Krzysztof Kozlowski,
Bjorn Andersson, devicetree
On 2/28/2025 7:53 PM, Rob Herring (Arm) wrote:
>
> On Fri, 28 Feb 2025 01:37:48 +0530, Akhil P Oommen wrote:
>> This series adds support for A623 GPU found in QCS8300 chipsets. This
>> GPU IP is very similar to A621 GPU, except for the UBWC configuration
>> and the GMU firmware.
>>
>> Both DT patches are for Bjorn and rest of the patches for Rob Clark to
>> pick up.
>>
>> ---
>> Changes in v2:
>> - Fix hwcg config (Konrad)
>> - Split gpucc reg list patch (Rob)
>> - Rebase on msm-next tip
>> - Link to v1: https://lore.kernel.org/r/20250213-a623-gpu-support-v1-0-993c65c39fd2@quicinc.com
>>
>> ---
>> Jie Zhang (6):
>> drm/msm/a6xx: Split out gpucc register block
>> drm/msm/a6xx: Fix gpucc register block for A621
>> drm/msm/a6xx: Add support for Adreno 623
>> dt-bindings: display/msm/gmu: Add Adreno 623 GMU
>> arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
>> arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU
>>
>> .../devicetree/bindings/display/msm/gmu.yaml | 1 +
>> arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 8 ++
>> arch/arm64/boot/dts/qcom/qcs8300.dtsi | 93 ++++++++++++++++++++++
>> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++
>> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++
>> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 13 ++-
>> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h | 17 ++++
>> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 ++
>> 8 files changed, 171 insertions(+), 3 deletions(-)
>> ---
>> base-commit: 89839e69f6154feecd79bd01171375225b0296e9
>> change-id: 20250213-a623-gpu-support-f6698603fb85
>> prerequisite-change-id: 20250131-b4-branch-gfx-smmu-b03261963064:v5
>> prerequisite-patch-id: f8fd1a2020c940e595e58a8bd3c55d00d3d87271
>> prerequisite-patch-id: 08a0540f75b0f95fd2018b38c9ed5c6f96433b4d
>>
>> Best regards,
>> --
>> Akhil P Oommen <quic_akhilpo@quicinc.com>
>>
>>
>>
>
>
> My bot found new DTB warnings on the .dts files added or changed in this
> series.
>
> Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
> are fixed by another series. Ultimately, it is up to the platform
> maintainer whether these warnings are acceptable or not. No need to reply
> unless the platform maintainer has comments.
>
> If you already ran DT checks and didn't see these error(s), then
> make sure dt-schema is up to date:
>
> pip3 install dtschema --upgrade
>
>
> New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/qcom/' for 20250228-a623-gpu-support-v2-0-aea654ecc1d3@quicinc.com:
>
> arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:0: 'gcc_gpu_memnoc_gfx_clk' was expected
> from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
> arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:1: 'gcc_gpu_snoc_dvm_gfx_clk' was expected
> from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
> arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:2: 'gpu_cc_ahb_clk' was expected
> from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
> arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:3: 'gpu_cc_hlos1_vote_gpu_smmu_clk' was expected
> from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
> arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:4: 'gpu_cc_cx_gmu_clk' was expected
> from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
> arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: iommu@3da0000: clock-names:5: 'gpu_cc_hub_cx_int_clk' was expected
> from schema $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml#
>
>
>
>
>
These warnings are for the smmu dt change which I marked as a
dependency. Hopefully, the v6 revision from Pratyush will fix this.
https://lore.kernel.org/linux-arm-kernel/20250310-b4-branch-gfx-smmu-v6-1-15c60b8abd99@quicinc.com/T/
-Akhil.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 0/6] Support for Adreno 623 GPU
2025-02-27 20:07 [PATCH v2 0/6] Support for Adreno 623 GPU Akhil P Oommen
` (6 preceding siblings ...)
2025-02-28 14:23 ` [PATCH v2 0/6] Support for " Rob Herring (Arm)
@ 2025-03-17 6:09 ` Akhil P Oommen
7 siblings, 0 replies; 23+ messages in thread
From: Akhil P Oommen @ 2025-03-17 6:09 UTC (permalink / raw)
To: Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang, Krzysztof Kozlowski
On 2/28/2025 1:37 AM, Akhil P Oommen wrote:
> This series adds support for A623 GPU found in QCS8300 chipsets. This
> GPU IP is very similar to A621 GPU, except for the UBWC configuration
> and the GMU firmware.
>
> Both DT patches are for Bjorn and rest of the patches for Rob Clark to
> pick up.
>
> ---
> Changes in v2:
> - Fix hwcg config (Konrad)
> - Split gpucc reg list patch (Rob)
> - Rebase on msm-next tip
> - Link to v1: https://lore.kernel.org/r/20250213-a623-gpu-support-v1-0-993c65c39fd2@quicinc.com
>
> ---
> Jie Zhang (6):
> drm/msm/a6xx: Split out gpucc register block
> drm/msm/a6xx: Fix gpucc register block for A621
> drm/msm/a6xx: Add support for Adreno 623
> dt-bindings: display/msm/gmu: Add Adreno 623 GMU
> arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
> arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU
>
> .../devicetree/bindings/display/msm/gmu.yaml | 1 +
> arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 8 ++
> arch/arm64/boot/dts/qcom/qcs8300.dtsi | 93 ++++++++++++++++++++++
> drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 29 +++++++
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 8 ++
> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 13 ++-
> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h | 17 ++++
> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 ++
> 8 files changed, 171 insertions(+), 3 deletions(-)
> ---
> base-commit: 89839e69f6154feecd79bd01171375225b0296e9
> change-id: 20250213-a623-gpu-support-f6698603fb85
> prerequisite-change-id: 20250131-b4-branch-gfx-smmu-b03261963064:v5
> prerequisite-patch-id: f8fd1a2020c940e595e58a8bd3c55d00d3d87271
> prerequisite-patch-id: 08a0540f75b0f95fd2018b38c9ed5c6f96433b4d
>
> Best regards,
Bjorn,
Now that the adreno smmu changes have merged, can we pick up the GPU DT
patches into your tree?
https://lore.kernel.org/linux-arm-kernel/174198247897.1604753.3634981110002933426.b4-ty@kernel.org/
-Akhil.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
2025-02-27 20:07 ` [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes Akhil P Oommen
@ 2025-04-14 11:01 ` Konrad Dybcio
2025-04-28 10:44 ` Akhil P Oommen
0 siblings, 1 reply; 23+ messages in thread
From: Konrad Dybcio @ 2025-04-14 11:01 UTC (permalink / raw)
To: Akhil P Oommen, Rob Clark, 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,
Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang
On 2/27/25 9:07 PM, Akhil P Oommen wrote:
> 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>
> ---
[...]
> + gmu: gmu@3d6a000 {
> + compatible = "qcom,adreno-gmu-623.0", "qcom,adreno-gmu";
> + reg = <0x0 0x03d6a000 0x0 0x34000>,
size = 0x26000 so that it doesn't leak into GPU_CC
> + <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>,
> + <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
This should only be bound to the SMMU
> + clock-names = "gmu",
> + "cxo",
> + "axi",
> + "memnoc",
> + "ahb",
> + "hub",
> + "smmu_vote";
> + 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-200000000 {
> + opp-hz = /bits/ 64 <200000000>;
It looks like this clock only has a 500 Mhz rate
Konrad
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
2025-04-14 11:01 ` Konrad Dybcio
@ 2025-04-28 10:44 ` Akhil P Oommen
2025-04-28 21:19 ` Konrad Dybcio
0 siblings, 1 reply; 23+ messages in thread
From: Akhil P Oommen @ 2025-04-28 10:44 UTC (permalink / raw)
To: Konrad Dybcio, Rob Clark, 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, Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang
On 4/14/2025 4:31 PM, Konrad Dybcio wrote:
> On 2/27/25 9:07 PM, Akhil P Oommen wrote:
>> 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>
>> ---
>
> [...]
>
>> + gmu: gmu@3d6a000 {
>> + compatible = "qcom,adreno-gmu-623.0", "qcom,adreno-gmu";
>> + reg = <0x0 0x03d6a000 0x0 0x34000>,
>
> size = 0x26000 so that it doesn't leak into GPU_CC
We dump GPUCC regs into snapshot!
>
>> + <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>,
>> + <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
>
> This should only be bound to the SMMU
Not sure how this sneaked in. Will remove this.
>
>> + clock-names = "gmu",
>> + "cxo",
>> + "axi",
>> + "memnoc",
>> + "ahb",
>> + "hub",
>> + "smmu_vote";
>> + 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-200000000 {
>> + opp-hz = /bits/ 64 <200000000>;
>
> It looks like this clock only has a 500 Mhz rate
Ack.
-Akhil.
>
> Konrad
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
2025-04-28 10:44 ` Akhil P Oommen
@ 2025-04-28 21:19 ` Konrad Dybcio
2025-04-29 12:17 ` Dmitry Baryshkov
0 siblings, 1 reply; 23+ messages in thread
From: Konrad Dybcio @ 2025-04-28 21:19 UTC (permalink / raw)
To: Akhil P Oommen, Konrad Dybcio, Rob Clark, 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,
Bjorn Andersson
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, devicetree,
Jie Zhang
On 4/28/25 12:44 PM, Akhil P Oommen wrote:
> On 4/14/2025 4:31 PM, Konrad Dybcio wrote:
>> On 2/27/25 9:07 PM, Akhil P Oommen wrote:
>>> 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>
>>> ---
>>
>> [...]
>>
>>> + gmu: gmu@3d6a000 {
>>> + compatible = "qcom,adreno-gmu-623.0", "qcom,adreno-gmu";
>>> + reg = <0x0 0x03d6a000 0x0 0x34000>,
>>
>> size = 0x26000 so that it doesn't leak into GPU_CC
>
> We dump GPUCC regs into snapshot!
Right, that's bad.. the dt heuristics are such that each region
is mapped by a single device that it belongs to, with some rare
exceptions..
Instead, the moderately dirty way would be to expose gpucc as
syscon & pass it to the GPU device, or the clean way would be
to implement an API within the clock framework that would dump
the relevant registers
Konrad
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
2025-04-28 21:19 ` Konrad Dybcio
@ 2025-04-29 12:17 ` Dmitry Baryshkov
2025-04-30 10:38 ` Konrad Dybcio
0 siblings, 1 reply; 23+ messages in thread
From: Dmitry Baryshkov @ 2025-04-29 12:17 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Akhil P Oommen, Rob Clark, 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,
Bjorn Andersson, linux-arm-msm, dri-devel, freedreno,
linux-kernel, devicetree, Jie Zhang
On Mon, Apr 28, 2025 at 11:19:32PM +0200, Konrad Dybcio wrote:
> On 4/28/25 12:44 PM, Akhil P Oommen wrote:
> > On 4/14/2025 4:31 PM, Konrad Dybcio wrote:
> >> On 2/27/25 9:07 PM, Akhil P Oommen wrote:
> >>> 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>
> >>> ---
> >>
> >> [...]
> >>
> >>> + gmu: gmu@3d6a000 {
> >>> + compatible = "qcom,adreno-gmu-623.0", "qcom,adreno-gmu";
> >>> + reg = <0x0 0x03d6a000 0x0 0x34000>,
> >>
> >> size = 0x26000 so that it doesn't leak into GPU_CC
> >
> > We dump GPUCC regs into snapshot!
>
> Right, that's bad.. the dt heuristics are such that each region
> is mapped by a single device that it belongs to, with some rare
> exceptions..
It has been like this for most (all?) GMU / GPUCC generations.
>
> Instead, the moderately dirty way would be to expose gpucc as
> syscon & pass it to the GPU device, or the clean way would be
> to implement an API within the clock framework that would dump
> the relevant registers
>
> Konrad
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
2025-04-29 12:17 ` Dmitry Baryshkov
@ 2025-04-30 10:38 ` Konrad Dybcio
2025-04-30 18:40 ` Rob Clark
0 siblings, 1 reply; 23+ messages in thread
From: Konrad Dybcio @ 2025-04-30 10:38 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Akhil P Oommen, Rob Clark, 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,
Bjorn Andersson, linux-arm-msm, dri-devel, freedreno,
linux-kernel, devicetree, Jie Zhang
On 4/29/25 2:17 PM, Dmitry Baryshkov wrote:
> On Mon, Apr 28, 2025 at 11:19:32PM +0200, Konrad Dybcio wrote:
>> On 4/28/25 12:44 PM, Akhil P Oommen wrote:
>>> On 4/14/2025 4:31 PM, Konrad Dybcio wrote:
>>>> On 2/27/25 9:07 PM, Akhil P Oommen wrote:
>>>>> 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>
>>>>> ---
>>>>
>>>> [...]
>>>>
>>>>> + gmu: gmu@3d6a000 {
>>>>> + compatible = "qcom,adreno-gmu-623.0", "qcom,adreno-gmu";
>>>>> + reg = <0x0 0x03d6a000 0x0 0x34000>,
>>>>
>>>> size = 0x26000 so that it doesn't leak into GPU_CC
>>>
>>> We dump GPUCC regs into snapshot!
>>
>> Right, that's bad.. the dt heuristics are such that each region
>> is mapped by a single device that it belongs to, with some rare
>> exceptions..
>
> It has been like this for most (all?) GMU / GPUCC generations.
Eeeeh fine, let's keep it here and fix it the next time (tm)
Konrad
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
2025-04-30 10:38 ` Konrad Dybcio
@ 2025-04-30 18:40 ` Rob Clark
2025-05-01 8:24 ` Akhil P Oommen
0 siblings, 1 reply; 23+ messages in thread
From: Rob Clark @ 2025-04-30 18:40 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Dmitry Baryshkov, Akhil P Oommen, 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,
Bjorn Andersson, linux-arm-msm, dri-devel, freedreno,
linux-kernel, devicetree, Jie Zhang, Rob Clark
On Wed, Apr 30, 2025 at 3:39 AM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 4/29/25 2:17 PM, Dmitry Baryshkov wrote:
> > On Mon, Apr 28, 2025 at 11:19:32PM +0200, Konrad Dybcio wrote:
> >> On 4/28/25 12:44 PM, Akhil P Oommen wrote:
> >>> On 4/14/2025 4:31 PM, Konrad Dybcio wrote:
> >>>> On 2/27/25 9:07 PM, Akhil P Oommen wrote:
> >>>>> 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>
> >>>>> ---
> >>>>
> >>>> [...]
> >>>>
> >>>>> + gmu: gmu@3d6a000 {
> >>>>> + compatible = "qcom,adreno-gmu-623.0", "qcom,adreno-gmu";
> >>>>> + reg = <0x0 0x03d6a000 0x0 0x34000>,
> >>>>
> >>>> size = 0x26000 so that it doesn't leak into GPU_CC
> >>>
> >>> We dump GPUCC regs into snapshot!
> >>
> >> Right, that's bad.. the dt heuristics are such that each region
> >> is mapped by a single device that it belongs to, with some rare
> >> exceptions..
> >
> > It has been like this for most (all?) GMU / GPUCC generations.
>
> Eeeeh fine, let's keep it here and fix it the next time (tm)
Maybe it would be reasonable to add a comment about this _somewhere_?
(Bindings doc?) I feel like this confusion has come up before. Maybe
it is a bit "ugly" but since gmu is directly banging on gpucc, it
doesn't seem completely inappropriate.
BR,
-R
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
2025-04-30 18:40 ` Rob Clark
@ 2025-05-01 8:24 ` Akhil P Oommen
0 siblings, 0 replies; 23+ messages in thread
From: Akhil P Oommen @ 2025-05-01 8:24 UTC (permalink / raw)
To: Rob Clark, Konrad Dybcio
Cc: Dmitry Baryshkov, 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, Bjorn Andersson, linux-arm-msm,
dri-devel, freedreno, linux-kernel, devicetree, Jie Zhang,
Rob Clark
On 5/1/2025 12:10 AM, Rob Clark wrote:
> On Wed, Apr 30, 2025 at 3:39 AM Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
>>
>> On 4/29/25 2:17 PM, Dmitry Baryshkov wrote:
>>> On Mon, Apr 28, 2025 at 11:19:32PM +0200, Konrad Dybcio wrote:
>>>> On 4/28/25 12:44 PM, Akhil P Oommen wrote:
>>>>> On 4/14/2025 4:31 PM, Konrad Dybcio wrote:
>>>>>> On 2/27/25 9:07 PM, Akhil P Oommen wrote:
>>>>>>> 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>
>>>>>>> ---
>>>>>>
>>>>>> [...]
>>>>>>
>>>>>>> + gmu: gmu@3d6a000 {
>>>>>>> + compatible = "qcom,adreno-gmu-623.0", "qcom,adreno-gmu";
>>>>>>> + reg = <0x0 0x03d6a000 0x0 0x34000>,
>>>>>>
>>>>>> size = 0x26000 so that it doesn't leak into GPU_CC
>>>>>
>>>>> We dump GPUCC regs into snapshot!
>>>>
>>>> Right, that's bad.. the dt heuristics are such that each region
>>>> is mapped by a single device that it belongs to, with some rare
>>>> exceptions..
>>>
>>> It has been like this for most (all?) GMU / GPUCC generations.
>>
>> Eeeeh fine, let's keep it here and fix it the next time (tm)
>
> Maybe it would be reasonable to add a comment about this _somewhere_?
> (Bindings doc?) I feel like this confusion has come up before. Maybe
> it is a bit "ugly" but since gmu is directly banging on gpucc, it
> doesn't seem completely inappropriate.
That's right. This is a shared region between Linux clk driver and GMU
firmware's clock driver.
-Akhil.
>
> BR,
> -R
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2025-05-01 8:24 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-27 20:07 [PATCH v2 0/6] Support for Adreno 623 GPU Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 1/6] drm/msm/a6xx: Split out gpucc register block Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 2/6] drm/msm/a6xx: Fix gpucc register block for A621 Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 3/6] drm/msm/a6xx: Add support for Adreno 623 Akhil P Oommen
2025-02-27 20:29 ` Konrad Dybcio
2025-02-27 21:06 ` Akhil P Oommen
2025-02-27 21:45 ` Konrad Dybcio
2025-02-27 23:26 ` Dmitry Baryshkov
2025-02-28 8:13 ` Akhil P Oommen
2025-02-28 10:17 ` Dmitry Baryshkov
2025-02-27 20:07 ` [PATCH v2 4/6] dt-bindings: display/msm/gmu: Add Adreno 623 GMU Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 5/6] arm64: dts: qcom: qcs8300: Add gpu and gmu nodes Akhil P Oommen
2025-04-14 11:01 ` Konrad Dybcio
2025-04-28 10:44 ` Akhil P Oommen
2025-04-28 21:19 ` Konrad Dybcio
2025-04-29 12:17 ` Dmitry Baryshkov
2025-04-30 10:38 ` Konrad Dybcio
2025-04-30 18:40 ` Rob Clark
2025-05-01 8:24 ` Akhil P Oommen
2025-02-27 20:07 ` [PATCH v2 6/6] arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU Akhil P Oommen
2025-02-28 14:23 ` [PATCH v2 0/6] Support for " Rob Herring (Arm)
2025-03-11 6:16 ` Akhil P Oommen
2025-03-17 6:09 ` 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).