]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/msm/a6xx: Handle GMU prepare-slumber hfi failure
authorAkhil P Oommen <quic_akhilpo@quicinc.com>
Thu, 18 Aug 2022 20:22:15 +0000 (01:52 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 05:44:29 +0000 (07:44 +0200)
[ Upstream commit d6463fd4e97545ef4f7069d13a5fa3ac0924dae2 ]

When prepare-slumber hfi fails, we should follow a6xx_gmu_force_off()
sequence.

Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/498401/
Link: https://lore.kernel.org/r/20220819015030.v5.7.I54815c7c36b80d4725cd054e536365250454452f@changeid
Signed-off-by: Rob Clark <robdclark@chromium.org>
Stable-dep-of: f561db72a663 ("drm/msm/a6xx: Fix stale rpmh votes from GPU")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/msm/adreno/a6xx_gmu.c

index db19f3dee6f2be735a35f4a7f63b5b249353b7ea..65ba58c712c93073239ae40cf93fac4f37f108fc 100644 (file)
@@ -1082,7 +1082,11 @@ static void a6xx_gmu_shutdown(struct a6xx_gmu *gmu)
                a6xx_bus_clear_pending_transactions(adreno_gpu);
 
                /* tell the GMU we want to slumber */
-               a6xx_gmu_notify_slumber(gmu);
+               ret = a6xx_gmu_notify_slumber(gmu);
+               if (ret) {
+                       a6xx_gmu_force_off(gmu);
+                       return;
+               }
 
                ret = gmu_poll_timeout(gmu,
                        REG_A6XX_GPU_GMU_AO_GPU_CX_BUSY_STATUS, val,