drm/i915: Check the execlist queue for pending requests before declaring idle
Including a check against the execlist queue before calling the engine idle and passing hangcheck. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20170721123238.16428-6-chris@chris-wilson.co.uk Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
5cce5e31a7
commit
d6edb6e3b6
|
@ -1283,6 +1283,10 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine)
|
||||||
if (port_request(&engine->execlist_port[0]))
|
if (port_request(&engine->execlist_port[0]))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
/* ELSP is empty, but there are ready requests? */
|
||||||
|
if (READ_ONCE(engine->execlist_first))
|
||||||
|
return false;
|
||||||
|
|
||||||
/* Ring stopped? */
|
/* Ring stopped? */
|
||||||
if (!ring_is_idle(engine))
|
if (!ring_is_idle(engine))
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue