[PATCH] drm/msm/a6xx: Fix dumping A650+ debugbus blocks

Connor Abbott posted 1 patch 1 week, 1 day ago
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
[PATCH] drm/msm/a6xx: Fix dumping A650+ debugbus blocks
Posted by Connor Abbott 1 week, 1 day ago
These should be appended after the existing debugbus blocks, instead of
replacing them.

Fixes: 1e05bba5e2b8 ("drm/msm/a6xx: Update a6xx gpu coredump")
Signed-off-by: Connor Abbott <cwabbott0@gmail.com>
---
 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
index d2d6b2fd3cba303959bd037b60796341315079a1..9699a5b4754628023b67f0eecafcda728953e8d2 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -361,7 +361,7 @@ static void a6xx_get_debugbus_blocks(struct msm_gpu *gpu,
 			sizeof(*a6xx_state->debugbus));
 
 	if (a6xx_state->debugbus) {
-		int i;
+		int i, j;
 
 		for (i = 0; i < ARRAY_SIZE(a6xx_debugbus_blocks); i++)
 			a6xx_get_debugbus_block(gpu,
@@ -369,8 +369,6 @@ static void a6xx_get_debugbus_blocks(struct msm_gpu *gpu,
 				&a6xx_debugbus_blocks[i],
 				&a6xx_state->debugbus[i]);
 
-		a6xx_state->nr_debugbus = ARRAY_SIZE(a6xx_debugbus_blocks);
-
 		/*
 		 * GBIF has same debugbus as of other GPU blocks, fall back to
 		 * default path if GPU uses GBIF, also GBIF uses exactly same
@@ -381,17 +379,19 @@ static void a6xx_get_debugbus_blocks(struct msm_gpu *gpu,
 				&a6xx_gbif_debugbus_block,
 				&a6xx_state->debugbus[i]);
 
-			a6xx_state->nr_debugbus += 1;
+			i++;
 		}
 
 
 		if (adreno_is_a650_family(to_adreno_gpu(gpu))) {
-			for (i = 0; i < ARRAY_SIZE(a650_debugbus_blocks); i++)
+			for (j = 0; j < ARRAY_SIZE(a650_debugbus_blocks); i++, j++)
 				a6xx_get_debugbus_block(gpu,
 					a6xx_state,
-					&a650_debugbus_blocks[i],
+					&a650_debugbus_blocks[j],
 					&a6xx_state->debugbus[i]);
 		}
+
+		a6xx_state->nr_debugbus = i;
 	}
 }
 

---
base-commit: e4eb11b34d6c84f398d8f08d7cb4d6c38e739dd2
change-id: 20260325-drm-msm-a650-debugbus-80119b64056a

Best regards,
-- 
Connor Abbott <cwabbott0@gmail.com>
Re: [PATCH] drm/msm/a6xx: Fix dumping A650+ debugbus blocks
Posted by Akhil P Oommen 2 days, 3 hours ago
On 3/26/2026 2:28 AM, Connor Abbott wrote:
> These should be appended after the existing debugbus blocks, instead of
> replacing them.
> 
> Fixes: 1e05bba5e2b8 ("drm/msm/a6xx: Update a6xx gpu coredump")
> Signed-off-by: Connor Abbott <cwabbott0@gmail.com>

Reviewed-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>

-Akhil

> ---
>  drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
> index d2d6b2fd3cba303959bd037b60796341315079a1..9699a5b4754628023b67f0eecafcda728953e8d2 100644
> --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
> @@ -361,7 +361,7 @@ static void a6xx_get_debugbus_blocks(struct msm_gpu *gpu,
>  			sizeof(*a6xx_state->debugbus));
>  
>  	if (a6xx_state->debugbus) {
> -		int i;
> +		int i, j;
>  
>  		for (i = 0; i < ARRAY_SIZE(a6xx_debugbus_blocks); i++)
>  			a6xx_get_debugbus_block(gpu,
> @@ -369,8 +369,6 @@ static void a6xx_get_debugbus_blocks(struct msm_gpu *gpu,
>  				&a6xx_debugbus_blocks[i],
>  				&a6xx_state->debugbus[i]);
>  
> -		a6xx_state->nr_debugbus = ARRAY_SIZE(a6xx_debugbus_blocks);
> -
>  		/*
>  		 * GBIF has same debugbus as of other GPU blocks, fall back to
>  		 * default path if GPU uses GBIF, also GBIF uses exactly same
> @@ -381,17 +379,19 @@ static void a6xx_get_debugbus_blocks(struct msm_gpu *gpu,
>  				&a6xx_gbif_debugbus_block,
>  				&a6xx_state->debugbus[i]);
>  
> -			a6xx_state->nr_debugbus += 1;
> +			i++;
>  		}
>  
>  
>  		if (adreno_is_a650_family(to_adreno_gpu(gpu))) {
> -			for (i = 0; i < ARRAY_SIZE(a650_debugbus_blocks); i++)
> +			for (j = 0; j < ARRAY_SIZE(a650_debugbus_blocks); i++, j++)
>  				a6xx_get_debugbus_block(gpu,
>  					a6xx_state,
> -					&a650_debugbus_blocks[i],
> +					&a650_debugbus_blocks[j],
>  					&a6xx_state->debugbus[i]);
>  		}
> +
> +		a6xx_state->nr_debugbus = i;
>  	}
>  }
>  
> 
> ---
> base-commit: e4eb11b34d6c84f398d8f08d7cb4d6c38e739dd2
> change-id: 20260325-drm-msm-a650-debugbus-80119b64056a
> 
> Best regards,