[PATCH] wtf

Chris Wilson chris at chris-wilson.co.uk
Wed Aug 15 19:00:10 UTC 2018


---
 drivers/gpu/drm/i915/intel_lrc.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 3f90c74038ef..75fba4dfbd28 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1961,10 +1961,26 @@ static void execlists_reset(struct intel_engine_cs *engine,
 	unwind_wa_tail(request);
 }
 
+static void wtf(struct intel_engine_cs *engine)
+{
+	struct drm_i915_private *dev_priv = engine->i915;
+	u32 val;
+
+	val = I915_READ_IMR(engine);
+	if (WARN(val & engine->irq_keep_mask,
+		 "engine %s IMR:%08x mbz:%08x\n",
+		 engine->name, val, engine->irq_keep_mask))
+		I915_WRITE_IMR(engine,
+			       ~(engine->irq_enable_mask |
+				 engine->irq_keep_mask));
+}
+
 static void execlists_reset_finish(struct intel_engine_cs *engine)
 {
 	struct intel_engine_execlists * const execlists = &engine->execlists;
 
+	wtf(engine);
+
 	/* After a GPU reset, we may have requests to replay */
 	if (!RB_EMPTY_ROOT(&execlists->queue.rb_root))
 		tasklet_schedule(&execlists->tasklet);
-- 
2.18.0



More information about the Intel-gfx-trybot mailing list