drm/etnaviv: Warn when GPU doesn't idle fast enough
authorGuido Günther <agx@sigxcpu.org>
Mon, 2 Mar 2020 19:13:36 +0000 (20:13 +0100)
committerLucas Stach <l.stach@pengutronix.de>
Tue, 3 Mar 2020 09:58:57 +0000 (10:58 +0100)
If the GPU isn't idle after signalling pm_runtime_mark_last_busy() plus
waiting for the autosuspend delay there's likely something wrong with
the way we check idleness so warn about that.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
drivers/gpu/drm/etnaviv/etnaviv_gpu.c

index 26fe340..169db7c 100644 (file)
@@ -1839,8 +1839,11 @@ static int etnaviv_gpu_rpm_suspend(struct device *dev)
        mask = gpu->idle_mask & ~(VIVS_HI_IDLE_STATE_FE |
                                  VIVS_HI_IDLE_STATE_MC);
        idle = gpu_read(gpu, VIVS_HI_IDLE_STATE) & mask;
-       if (idle != mask)
+       if (idle != mask) {
+               dev_warn_ratelimited(dev, "GPU not yet idle, mask: 0x%08x\n",
+                                    idle);
                return -EBUSY;
+       }
 
        return etnaviv_gpu_hw_suspend(gpu);
 }