drm/i915: Postpone fake breadcrumb interrupt until real interrupts cease
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 17 Feb 2017 15:13:00 +0000 (15:13 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 17 Feb 2017 15:30:50 +0000 (15:30 +0000)
commit2246bea6cf773552106d98ab31ba7952c4ddb3f9
tree3d565a27d2d757f3d58b1f792e6227c82421f746
parent3bb56da78153150d72c67ceb8b7df49f36ae269c
drm/i915: Postpone fake breadcrumb interrupt until real interrupts cease

When the timer expires for checking on interrupt processing, check to
see if any interrupts arrived within the last time period. If real
interrupts are still being delivered, we can be reassured that we
haven't missed the final interrupt as the waiter will still be woken.
Only once all activity ceases, do we have to worry about the waiter
never being woken and so need to install a timer to kick the waiter for
a slow arrival of a seqno.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170217151304.16665-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_breadcrumbs.c
drivers/gpu/drm/i915/intel_ringbuffer.h