[PATCH 01/18] drm/etnaviv: reset GPU when coming back from suspend

Lucas Stach l.stach at pengutronix.de
Mon Aug 22 11:00:55 UTC 2016


The GPU may still keep its state when in suspend, which breaks the
assumption that the hardware is in a clean state before the init
routine runs. Make sure to reset the GPU when coming back from
suspend, so this assumption is validated.

Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
---
 drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
index b382cf505262..433d2df0907b 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
@@ -1531,17 +1531,13 @@ static int etnaviv_gpu_hw_suspend(struct etnaviv_gpu *gpu)
 #ifdef CONFIG_PM
 static int etnaviv_gpu_hw_resume(struct etnaviv_gpu *gpu)
 {
-	u32 clock;
 	int ret;
 
 	ret = mutex_lock_killable(&gpu->lock);
 	if (ret)
 		return ret;
 
-	clock = VIVS_HI_CLOCK_CONTROL_DISABLE_DEBUG_REGISTERS |
-		VIVS_HI_CLOCK_CONTROL_FSCALE_VAL(0x40);
-
-	etnaviv_gpu_load_clock(gpu, clock);
+	etnaviv_hw_reset(gpu);
 	etnaviv_gpu_hw_init(gpu);
 
 	gpu->switch_context = true;
-- 
2.8.1



More information about the dri-devel mailing list