drm/i915: Avoid pageflipping freeze when we miss the flip prepare interrupt
authorSimon Farnsworth <simon.farnsworth@onelan.co.uk>
Wed, 1 Sep 2010 16:47:52 +0000 (17:47 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 7 Sep 2010 10:16:35 +0000 (11:16 +0100)
commit4e5359cd053bfb7d8dabe4a63624a5726848ffbc
treeea7b81407d31dc62fe495d5a5899c79ea692db33
parent8e647a279ca30029f19eca646de08a6338eab924
drm/i915: Avoid pageflipping freeze when we miss the flip prepare interrupt

When we miss the flip prepare interrupt, we never get into the
software state needed to restart userspace, resulting in a freeze of a
full-screen OpenGL application (such as a compositor).

Work around this by checking DSPxSURF/DSPxBASE to see if the page flip
has actually happened. If it has, do the work we would have done when
the flip prepare interrupt comes in.

Also, add debugfs information to tell us what's going on (based on the
patch from Chris Wilson attached to bugs.fdo bug #29798).

Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h