Commit b4f3e163 authored by Chris Wilson's avatar Chris Wilson Committed by Daniel Vetter

drm/i915: Reset context image on engines after triggering the reset

We try to fixup the context image after the reset to ensure that there
are no more pending writes from the hw that may conflict and to fixup
any that were in flight.

Fixes: a1ef70e1 ("drm/i915: Add support for per engine reset recovery")
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Michel Thierry <michel.thierry@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170721123238.16428-2-chris@chris-wilson.co.ukSigned-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 4d73da93
...@@ -1950,6 +1950,8 @@ int i915_reset_engine(struct intel_engine_cs *engine) ...@@ -1950,6 +1950,8 @@ int i915_reset_engine(struct intel_engine_cs *engine)
goto out; goto out;
} }
ret = intel_gpu_reset(engine->i915, intel_engine_flag(engine));
/* /*
* The request that caused the hang is stuck on elsp, we know the * The request that caused the hang is stuck on elsp, we know the
* active request and can drop it, adjust head to skip the offending * active request and can drop it, adjust head to skip the offending
...@@ -1957,9 +1959,6 @@ int i915_reset_engine(struct intel_engine_cs *engine) ...@@ -1957,9 +1959,6 @@ int i915_reset_engine(struct intel_engine_cs *engine)
*/ */
i915_gem_reset_engine(engine, active_request); i915_gem_reset_engine(engine, active_request);
/* Finally, reset just this engine. */
ret = intel_gpu_reset(engine->i915, intel_engine_flag(engine));
i915_gem_reset_finish_engine(engine); i915_gem_reset_finish_engine(engine);
if (ret) { if (ret) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment