Commit b68be5c6 authored by Chris Wilson's avatar Chris Wilson

drm/i915/execlists: Record the active CCID from before reset

If we cannot trust the reset will flush out the CS event queue such that
process_csb() reports an accurate view of HW, we will need to search the
active and pending contexts to determine which was actually running at
the time we issued the reset.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200505084629.31365-1-chris@chris-wilson.co.uk
parent f136c58a
...@@ -179,6 +179,11 @@ struct intel_engine_execlists { ...@@ -179,6 +179,11 @@ struct intel_engine_execlists {
*/ */
u32 error_interrupt; u32 error_interrupt;
/**
* @reset_ccid: Active CCID [EXECLISTS_STATUS_HI] at the time of reset
*/
u32 reset_ccid;
/** /**
* @no_priolist: priority lists disabled * @no_priolist: priority lists disabled
*/ */
......
...@@ -4074,6 +4074,8 @@ static void execlists_reset_prepare(struct intel_engine_cs *engine) ...@@ -4074,6 +4074,8 @@ static void execlists_reset_prepare(struct intel_engine_cs *engine)
*/ */
ring_set_paused(engine, 1); ring_set_paused(engine, 1);
intel_engine_stop_cs(engine); intel_engine_stop_cs(engine);
engine->execlists.reset_ccid = active_ccid(engine);
} }
static void __reset_stop_ring(u32 *regs, const struct intel_engine_cs *engine) static void __reset_stop_ring(u32 *regs, const struct intel_engine_cs *engine)
...@@ -4116,7 +4118,7 @@ static void __execlists_reset(struct intel_engine_cs *engine, bool stalled) ...@@ -4116,7 +4118,7 @@ static void __execlists_reset(struct intel_engine_cs *engine, bool stalled)
* its request, it was still running at the time of the * its request, it was still running at the time of the
* reset and will have been clobbered. * reset and will have been clobbered.
*/ */
rq = execlists_active(execlists); rq = active_context(engine, engine->execlists.reset_ccid);
if (!rq) if (!rq)
goto unwind; goto unwind;
......
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