drm/i915: Don't wait interruptible for possible plane buffer flush
authorZhenyu Wang <zhenyuw@linux.intel.com>
Wed, 25 Nov 2009 05:09:39 +0000 (13:09 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 23 Feb 2010 15:37:54 +0000 (07:37 -0800)
commit26d415dcf38423cb4c990e82c71e19011a9ad4e6
treefe384307cc8475c1768da9fac123999d21cce079
parent47516b77eb1beb5b35c17112284493d008bc7c4a
drm/i915: Don't wait interruptible for possible plane buffer flush

commit b9241ea31fae4887104e5d1b3b18f4009c25a0c4 upstream.

When we setup buffer for display plane, we'll check any pending
required GPU flush and possible make interruptible wait for flush
complete. But that wait would be most possibly to fail in case of
signals received for X process, which will then fail modeset process
and put display engine in unconsistent state. The result could be
blank screen or CPU hang, and DDX driver would always turn on outputs
DPMS after whatever modeset fails or not.

So this one creates new helper for setup display plane buffer, and
when needing flush using uninterruptible wait for that.

This one should fix bug like https://bugs.freedesktop.org/show_bug.cgi?id=24009.
Also fixing mode switch stress test on Ironlake.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/intel_display.c