[Intel-gfx] [PATCH] drm/i915: improve FBC with self-refresh on 965 too

Jesse Barnes jbarnes at virtuousgeek.org
Mon Feb 15 18:26:20 CET 2010

This is the 965 equivalent of "handle FBC and self-refresh better".
The bugs fixed by that patch seemed mainly to affect 945 users, but I
did get one report from a user who wanted a similar fix on 965, so here
it is.  It simply prevents the FBC unit from asserting idle until its
current compression pass completes, which should avoid any problems with
self-refresh being enabled during a compression pass.

Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

Note this one hasn't seen any testing yet; I'd like to test a tested-by
or two before this is applied.

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index b27202d..d3ea77e 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1026,6 +1026,8 @@ static void i8xx_enable_fbc(struct drm_crtc *crtc, unsigned long interval)
 	fbc_ctl2 = FBC_CTL_FENCE_DBL | FBC_CTL_IDLE_IMM | plane;
 	if (obj_priv->tiling_mode != I915_TILING_NONE)
 		fbc_ctl2 |= FBC_CTL_CPU_FENCE;
+	if (IS_I965GM(dev))
+		fbc_ctl2 |= FBC_CTL_IDLE_FULL;
 	I915_WRITE(FBC_CONTROL2, fbc_ctl2);
 	I915_WRITE(FBC_FENCE_OFF, crtc->y);

More information about the Intel-gfx mailing list