drm/i915: Include RING_MODE when dumping the engine state
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 26 Oct 2017 11:50:48 +0000 (12:50 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 26 Oct 2017 20:35:21 +0000 (21:35 +0100)
Knowing the RING_MODE flags is useful for checking the state of the
engine, such as whether the CS is idle after trying to stop the engines
before reset.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171026115048.20144-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
drivers/gpu/drm/i915/intel_engine_cs.c

index 3ac876ca6cae2f1b900b27280c251d8e44201a1e..f31f2d6384c35dbf570c80281c891705293bacde 100644 (file)
@@ -1723,9 +1723,14 @@ void intel_engine_dump(struct intel_engine_cs *engine, struct drm_printer *m)
        drm_printf(m, "\tRING_TAIL:  0x%08x [0x%08x]\n",
                   I915_READ(RING_TAIL(engine->mmio_base)) & TAIL_ADDR,
                   rq ? rq->ring->tail : 0);
-       drm_printf(m, "\tRING_CTL:   0x%08x [%s]\n",
+       drm_printf(m, "\tRING_CTL:   0x%08x%s\n",
                   I915_READ(RING_CTL(engine->mmio_base)),
-                  I915_READ(RING_CTL(engine->mmio_base)) & (RING_WAIT | RING_WAIT_SEMAPHORE) ? "waiting" : "");
+                  I915_READ(RING_CTL(engine->mmio_base)) & (RING_WAIT | RING_WAIT_SEMAPHORE) ? " [waiting]" : "");
+       if (INTEL_GEN(engine->i915) > 2) {
+               drm_printf(m, "\tRING_MODE:  0x%08x%s\n",
+                          I915_READ(RING_MI_MODE(engine->mmio_base)),
+                          I915_READ(RING_MI_MODE(engine->mmio_base)) & (MODE_IDLE) ? " [idle]" : "");
+       }
 
        rcu_read_unlock();