drm/msm/a8xx: Make a8xx_recover IFPC safe

Similar to a6xx_recover(), check the GX power domain status before
accessing mmio in GX domain a8xx_recover().

Fixes: 288a932008 ("drm/msm/adreno: Introduce A8x GPU Support")
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/720977/
Message-ID: <20260427-gfx-clk-fixes-v2-5-797e54b3d464@oss.qualcomm.com>
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
This commit is contained in:
Akhil P Oommen 2026-04-27 12:08:59 +05:30 committed by Rob Clark
parent 8de061ca14
commit e7c45d9838

View File

@ -882,17 +882,22 @@ void a8xx_recover(struct msm_gpu *gpu)
adreno_dump_info(gpu);
if (hang_debug)
a8xx_dump(gpu);
/*
* To handle recovery specific sequences during the rpm suspend we are
* about to trigger
*/
a6xx_gpu->hung = true;
/* Halt SQE first */
gpu_write(gpu, REG_A8XX_CP_SQE_CNTL, 3);
if (adreno_gpu->funcs->gx_is_on(adreno_gpu)) {
/*
* Sometimes crashstate capture is skipped, so SQE should be
* halted here again
*/
gpu_write(gpu, REG_A8XX_CP_SQE_CNTL, 3);
if (hang_debug)
a8xx_dump(gpu);
}
pm_runtime_dont_use_autosuspend(&gpu->pdev->dev);