drm/etnaviv: reduce reset delay
authorPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 9 Oct 2017 10:03:30 +0000 (12:03 +0200)
committerLucas Stach <l.stach@pengutronix.de>
Tue, 10 Oct 2017 10:09:34 +0000 (12:09 +0200)
After reset assertion, we only have to wait for the reset signals to
propagate through the GPU before deasserting the reset again. A few
hundred clock cycles should be more than enough. Replace the msleep(1),
which can actually take about 30 ms on i.MX6Q in some configurations,
with an usleep_range of a few microseconds. If the delay was too short,
the FE would not be idle afterwards, and the reset would be retried.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
drivers/gpu/drm/etnaviv/etnaviv_gpu.c

index 3e0fcc1fafb506790a0ab39fa8c486ffccb7844c..95ee479c95cb3fe7b4798712077d084864d63f1e 100644 (file)
@@ -456,7 +456,7 @@ static int etnaviv_hw_reset(struct etnaviv_gpu *gpu)
                gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, control);
 
                /* wait for reset. */
-               msleep(1);
+               usleep_range(10, 20);
 
                /* reset soft reset bit. */
                control &= ~VIVS_HI_CLOCK_CONTROL_SOFT_RESET;