While the FE is an important part of the GPU, which needs to be idle
after reset, all other modules should be idle after a proper reset.
Check all present modules for being idle to determine wether the
reset was successful.

Signed-off-by: Lucas Stach <[email protected]>
---
 drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c 
b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
index a891d4f1f843..34fff36af450 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
@@ -585,9 +585,9 @@ static int etnaviv_hw_reset(struct etnaviv_gpu *gpu)
                /* read idle register. */
                idle = gpu_read(gpu, VIVS_HI_IDLE_STATE);
 
-               /* try resetting again if FE is not idle */
-               if ((idle & VIVS_HI_IDLE_STATE_FE) == 0) {
-                       dev_dbg(gpu->dev, "FE is not idle\n");
+               /* try resetting again if any module is not idle */
+               if ((idle & gpu->idle_mask) != gpu->idle_mask) {
+                       dev_dbg(gpu->dev, "GPU modules not idle\n");
                        continue;
                }
 
-- 
2.47.3

Reply via email to