aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-04-11 14:42:39 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-04-17 05:19:56 -0400
commitbe901a5a1bdb13c3390110d4b9780c03018d96a0 (patch)
treee4824cc5d40abaa54a6d3944e7465e0cdfbc1293 /drivers/gpu/drm/i915/i915_gem.c
parentde4a8bd16205283e9cb746e8fbfa7f9735c039b5 (diff)
drm/i915: set w/a bit for snb pagefaults
Bspec says that we need to set this: vol1c.3 "Blitter Command Streamer", Section 1.1.2.1 "GAB_CTL_REG - GAB Unit Control Register". We don't really rely on pagefaults, but who knows what this all affects. Reviewed-by: Ben Widawsky <ben@bwidawsk.net> Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index ac8bc1df7c8f..92acc5f8e334 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3669,7 +3669,12 @@ void i915_gem_init_ppgtt(struct drm_device *dev)
3669 pd_offset <<= 16; 3669 pd_offset <<= 16;
3670 3670
3671 if (INTEL_INFO(dev)->gen == 6) { 3671 if (INTEL_INFO(dev)->gen == 6) {
3672 uint32_t ecochk = I915_READ(GAM_ECOCHK); 3672 uint32_t ecochk, gab_ctl;
3673
3674 gab_ctl = I915_READ(GAB_CTL);
3675 I915_WRITE(GAB_CTL, gab_ctl | GAB_CTL_CONT_AFTER_PAGEFAULT);
3676
3677 ecochk = I915_READ(GAM_ECOCHK);
3673 I915_WRITE(GAM_ECOCHK, ecochk | ECOCHK_SNB_BIT | 3678 I915_WRITE(GAM_ECOCHK, ecochk | ECOCHK_SNB_BIT |
3674 ECOCHK_PPGTT_CACHE64B); 3679 ECOCHK_PPGTT_CACHE64B);
3675 I915_WRITE(GFX_MODE, GFX_MODE_ENABLE(GFX_PPGTT_ENABLE)); 3680 I915_WRITE(GFX_MODE, GFX_MODE_ENABLE(GFX_PPGTT_ENABLE));