]> git.karo-electronics.de Git - karo-tx-linux.git/commit
drm/i915: i8xx also doesn't like multiple oustanding pageflips
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 4 Aug 2010 19:22:10 +0000 (21:22 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 26 Aug 2010 23:45:55 +0000 (16:45 -0700)
commit8a8c25a716100dc9a50e5546fadf03e56588ee09
treed263b5b4a4dff7d80f20dd32625cb8314c7a3b99
parentaa6b6a4b1b48e26b95af02eee80c8741eb2a4684
drm/i915: i8xx also doesn't like multiple oustanding pageflips

commit 6146b3d61925116e3fecce36c2fd873665bd6614 upstream.

My i855GM suffers from a 80k/s interrupt storm without this.
So add 2nd gen to the list of things that don't like more than
one outstanding pageflip request.

Furthermore I've changed the busy loop into a ringbuffer wait.
Busy-loops that don't check whether the chip died are simply evil.
And performance should actually improve, because there's usually
a decent amount of rendering queued on the gpu, hopefully rendering
that MI_WAIT into a noop by the time it's executed.

The current code holds dev->struct_mutex while executing this loop,
hence stalling all other gem activity anyway.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
[anholt: resolved against conflict]
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/gpu/drm/i915/intel_display.c