On 6/4/26 10:08 PM, Akhil P Oommen wrote: > From: Shivam Rawat <[email protected]> > > 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 <[email protected]> > Signed-off-by: Akhil P Oommen <[email protected]> > --- > 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 <[email protected]> Konrad
