diff options
author | Chris Wilson | 2017-07-21 14:32:24 +0200 |
---|---|---|
committer | Daniel Vetter | 2017-07-27 09:38:45 +0200 |
commit | d6edb6e3b63faae5cd96993e0977d3807bd87be6 (patch) | |
tree | 10c4a514747b997474310475be2c1ae08c0ca948 /drivers/gpu/drm/i915/intel_engine_cs.c | |
parent | drm/i915: Check execlist/ring status during hangcheck (diff) | |
download | kernel-qcow2-linux-d6edb6e3b63faae5cd96993e0977d3807bd87be6.tar.gz kernel-qcow2-linux-d6edb6e3b63faae5cd96993e0977d3807bd87be6.tar.xz kernel-qcow2-linux-d6edb6e3b63faae5cd96993e0977d3807bd87be6.zip |
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>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_engine_cs.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_engine_cs.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c index 24db316e0fd1..c6ebfe7fb4f1 100644 --- a/drivers/gpu/drm/i915/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/intel_engine_cs.c @@ -1283,6 +1283,10 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine) if (port_request(&engine->execlist_port[0])) return false; + /* ELSP is empty, but there are ready requests? */ + if (READ_ONCE(engine->execlist_first)) + return false; + /* Ring stopped? */ if (!ring_is_idle(engine)) return false; |