Re: [PATCH 1/6] drm/msm/a6xx: Fix stale rpmh votes after suspend
From: Konrad Dybcio
Date: Mon Jun 08 2026 - 04:20:45 EST
On 6/4/26 10:08 PM, Akhil P Oommen wrote:
> From: Shivam Rawat <shivrawa@xxxxxxxxxxxxxxxx>
>
> There are stale RPMH votes (BCM votes) observed after GMU suspend. This
> is because the rpmh stop sequences are skipped during gmu suspend. Fix
> this and also move GMU to reset state to avoid any further activity.
>
> Fixes: f248d5d5159a ("drm/msm/a6xx: Fix PDC sleep sequence")
> Signed-off-by: Shivam Rawat <shivrawa@xxxxxxxxxxxxxxxx>
> Signed-off-by: Akhil P Oommen <akhilpo@xxxxxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> index 2e5d7b53a0c3..a2f6918c4f7f 100644
> --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> @@ -642,7 +642,7 @@ static void a6xx_rpmh_stop(struct a6xx_gmu *gmu)
> int ret;
> u32 val;
>
> - if (test_and_clear_bit(GMU_STATUS_FW_START, &gmu->status))
> + if (!test_and_clear_bit(GMU_STATUS_FW_START, &gmu->status))
> return;
Hiding in plain sight!
>
> if (adreno_is_a840(adreno_gpu))
> @@ -1465,6 +1465,9 @@ static void a6xx_gmu_shutdown(struct a6xx_gmu *gmu)
> /* Stop the interrupts and mask the hardware */
> a6xx_gmu_irq_disable(gmu);
>
> + /* Halt the gmu cm3 core */
> + gmu_write(gmu, REG_A6XX_GMU_CM3_SYSRESET, 1);
I believe this is what kgsl does as well, so:
Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
Konrad