Browse Source

drm/etnaviv: hold GPU lock while inserting END command

Inserting the END command when suspending the GPU is changing the
command buffer state, which requires the GPU to be held.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Lucas Stach 7 years ago
parent
commit
40c27bdeb0
1 changed files with 2 additions and 0 deletions
  1. 2 0
      drivers/gpu/drm/etnaviv/etnaviv_gpu.c

+ 2 - 0
drivers/gpu/drm/etnaviv/etnaviv_gpu.c

@@ -1631,7 +1631,9 @@ static int etnaviv_gpu_hw_suspend(struct etnaviv_gpu *gpu)
 {
 	if (gpu->buffer) {
 		/* Replace the last WAIT with END */
+		mutex_lock(&gpu->lock);
 		etnaviv_buffer_end(gpu);
+		mutex_unlock(&gpu->lock);
 
 		/*
 		 * We know that only the FE is busy here, this should