aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-04-11 14:42:41 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-04-17 05:20:02 -0400
commitbf97b276ca04cee9ab65ffd378fa8e6aedd71ff6 (patch)
tree70730bee7c79aaee958cb6e8d0febf546480ca6c /drivers/gpu/drm/i915
parent48ecfa1090b65390b1cfa4c693ece6b171a407e4 (diff)
drm/i915: implement w/a for incorrect guarband clipping
According to Bsepc, this should be set by default, but isn't. See vo1c.4 "Render Engine Command Streamer", Section 1.1.14.3 "3D_CHICKEN3" Bspec also says that we always need to set all mask bits. v2: Add comment about the mask bits wtf. Reviewed-by: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h1
-rw-r--r--drivers/gpu/drm/i915/intel_display.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index a9030f852cf9..6d9205436121 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -497,6 +497,7 @@
497 */ 497 */
498# define _3D_CHICKEN2_WM_READ_PIPELINED (1 << 14) 498# define _3D_CHICKEN2_WM_READ_PIPELINED (1 << 14)
499#define _3D_CHICKEN3 0x02090 499#define _3D_CHICKEN3 0x02090
500#define _3D_CHICKEN_SF_DISABLE_FASTCLIP_CULL (1 << 5)
500 501
501#define MI_MODE 0x0209c 502#define MI_MODE 0x0209c
502# define VS_TIMER_DISPATCH (1 << 6) 503# define VS_TIMER_DISPATCH (1 << 6)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 813cc3cda059..1a6bb6101491 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -8897,6 +8897,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
8897 GEN6_RCPBUNIT_CLOCK_GATE_DISABLE | 8897 GEN6_RCPBUNIT_CLOCK_GATE_DISABLE |
8898 GEN6_RCCUNIT_CLOCK_GATE_DISABLE); 8898 GEN6_RCCUNIT_CLOCK_GATE_DISABLE);
8899 8899
8900 /* Bspec says we need to always set all mask bits. */
8901 I915_WRITE(_3D_CHICKEN, (0xFFFF << 16) |
8902 _3D_CHICKEN_SF_DISABLE_FASTCLIP_CULL);
8903
8900 /* 8904 /*
8901 * According to the spec the following bits should be 8905 * According to the spec the following bits should be
8902 * set in order to enable memory self-refresh and fbc: 8906 * set in order to enable memory self-refresh and fbc: