drm/i915: set more FBC chicken bits
authorJesse Barnes <jbarnes@virtuousgeek.org>
Mon, 17 Jan 2011 21:35:57 +0000 (13:35 -0800)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 18 Jan 2011 09:50:08 +0000 (09:50 +0000)
Add a couple of missing workaround bits for ILK & SNB.  These disable
clock gating on a couple of units that would otherwise prevent FBC from
working.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_display.c

index 40a407f41f61954fb5bd89cff03256b5283c3c35..6abb15f13c2b484450ddbd13a0c86afe8470d4bf 100644 (file)
 #define DISPLAY_PORT_PLL_BIOS_2         0x46014
 
 #define PCH_DSPCLK_GATE_D      0x42020
+# define DPFCUNIT_CLOCK_GATE_DISABLE           (1 << 9)
+# define DPFCRUNIT_CLOCK_GATE_DISABLE          (1 << 8)
 # define DPFDUNIT_CLOCK_GATE_DISABLE           (1 << 7)
 # define DPARBUNIT_CLOCK_GATE_DISABLE          (1 << 5)
 
index 98967f3b7724e1554713fa665e62b67f6abbddcd..d2ef1c2c65e9a9ed9d3244454ee63a950d72e031 100644 (file)
@@ -6286,7 +6286,9 @@ void intel_enable_clock_gating(struct drm_device *dev)
 
                if (IS_GEN5(dev)) {
                        /* Required for FBC */
-                       dspclk_gate |= DPFDUNIT_CLOCK_GATE_DISABLE;
+                       dspclk_gate |= DPFCUNIT_CLOCK_GATE_DISABLE |
+                               DPFCRUNIT_CLOCK_GATE_DISABLE |
+                               DPFDUNIT_CLOCK_GATE_DISABLE;
                        /* Required for CxSR */
                        dspclk_gate |= DPARBUNIT_CLOCK_GATE_DISABLE;