When we attempt to idle the GPU we take a shortcut by checking if our lists are empty and if so, avoid doing a synchronizing flush. The warning will let us know if this assumption turns out to not be correct.
Cc: Chris Wilson <ch...@chris-wilson.co.uk> Signed-off-by: Ben Widawsky <b...@bwidawsk.net> --- drivers/gpu/drm/i915/i915_gem.c | 3 ++- drivers/gpu/drm/i915/i915_reg.h | 1 + 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index a546a71..61ce1b7 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2277,7 +2277,8 @@ i915_gpu_idle(struct drm_device *dev) lists_empty = (list_empty(&dev_priv->mm.flushing_list) && list_empty(&dev_priv->mm.active_list)); - if (lists_empty) + if (lists_empty) { + WARN_ON(!(I915_READ(MI_MODE) & MI_RINGS_IDLE)); return 0; /* Flush everything onto the inactive list. */ diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 542453f..68af365 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -372,6 +372,7 @@ #define MI_MODE 0x0209c # define VS_TIMER_DISPATCH (1 << 6) +# define MI_RINGS_IDLE (1 << 9) # define MI_FLUSH_ENABLE (1 << 11) #define GFX_MODE 0x02520 -- 1.7.6.3 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx