drm/i915/gt: Always flush the submission queue on checking for idle
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 5 Feb 2021 17:43:57 +0000 (17:43 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 24 Mar 2021 18:31:59 +0000 (19:31 +0100)
We check for idle during debug prints and other debugging actions.
Simplify the flow by not touching execlists state.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210205174358.28465-1-chris@chris-wilson.co.uk
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/gt/intel_engine_cs.c

index 0090872..eafe9be 100644 (file)
@@ -1254,14 +1254,8 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine)
                return true;
 
        /* Waiting to drain ELSP? */
-       if (execlists_active(&engine->execlists)) {
-               synchronize_hardirq(to_pci_dev(engine->i915->drm.dev)->irq);
-
-               intel_engine_flush_submission(engine);
-
-               if (execlists_active(&engine->execlists))
-                       return false;
-       }
+       synchronize_hardirq(to_pci_dev(engine->i915->drm.dev)->irq);
+       intel_engine_flush_submission(engine);
 
        /* ELSP is empty, but there are ready requests? E.g. after reset */
        if (!RB_EMPTY_ROOT(&engine->execlists.queue.rb_root))