Skip to content

Commit

Permalink
drm/msm/adreno: fix a743 and a740 cx mem init
Browse files Browse the repository at this point in the history
Disable the call to qcom_scm_gpu_init_regs() for a730 and a740
after init failures on the HDK8550 and HDK8450 platforms:
msm_dpu ae01000.display-controller: failed to load adreno gpu
msm_dpu ae01000.display-controller: failed to bind 3d00000.gpu (ops a3xx_ops [msm]): -5
msm_dpu ae01000.display-controller: adev bind failed: -5

While debugging, it happens the call to:
qcom_scm_gpu_init_regs(QCOM_SCM_GPU_ALWAYS_EN_REQ)
returns -5 and makes the gpu fail to initialize.

Remove the scm call since it's not done downstream either and
works fine without.

Fixes: 14b27d5 ("drm/msm/a7xx: Initialize a750 "software fuse"")
Signed-off-by: Neil Armstrong <[email protected]>
Reviewed-by: Connor Abbott <[email protected]>
Patchwork: https://patchwork.freedesktop.org/patch/600972/
Signed-off-by: Rob Clark <[email protected]>
  • Loading branch information
superna9999 authored and robclark committed Jun 29, 2024
1 parent 181914b commit cc2ccd1
Showing 1 changed file with 3 additions and 8 deletions.
11 changes: 3 additions & 8 deletions drivers/gpu/drm/msm/adreno/a6xx_gpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1739,14 +1739,9 @@ static int a7xx_cx_mem_init(struct a6xx_gpu *a6xx_gpu)
REG_A7XX_CX_MISC_SW_FUSE_VALUE);
adreno_gpu->has_ray_tracing =
!!(fuse_val & A7XX_CX_MISC_SW_FUSE_VALUE_RAYTRACING);
} else {
if (adreno_is_a740(adreno_gpu)) {
/* Raytracing is always enabled on a740 */
adreno_gpu->has_ray_tracing = true;
}

if (qcom_scm_is_available())
return qcom_scm_gpu_init_regs(QCOM_SCM_GPU_ALWAYS_EN_REQ);
} else if (adreno_is_a740(adreno_gpu)) {
/* Raytracing is always enabled on a740 */
adreno_gpu->has_ray_tracing = true;
}

return 0;
Expand Down

0 comments on commit cc2ccd1

Please sign in to comment.