diff options
| author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-04-11 14:42:39 -0400 |
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-04-17 05:19:56 -0400 |
| commit | be901a5a1bdb13c3390110d4b9780c03018d96a0 (patch) | |
| tree | e4824cc5d40abaa54a6d3944e7465e0cdfbc1293 | |
| parent | de4a8bd16205283e9cb746e8fbfa7f9735c039b5 (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>
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 3 |
2 files changed, 9 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)); |
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 1124e4f594f5..d875fb19f62d 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
| @@ -127,6 +127,9 @@ | |||
| 127 | #define ECOCHK_PPGTT_CACHE64B (0x3<<3) | 127 | #define ECOCHK_PPGTT_CACHE64B (0x3<<3) |
| 128 | #define ECOCHK_PPGTT_CACHE4B (0x0<<3) | 128 | #define ECOCHK_PPGTT_CACHE4B (0x0<<3) |
| 129 | 129 | ||
| 130 | #define GAB_CTL 0x24000 | ||
| 131 | #define GAB_CTL_CONT_AFTER_PAGEFAULT (1<<8) | ||
| 132 | |||
| 130 | /* VGA stuff */ | 133 | /* VGA stuff */ |
| 131 | 134 | ||
| 132 | #define VGA_ST01_MDA 0x3ba | 135 | #define VGA_ST01_MDA 0x3ba |
