aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2011-12-21 13:31:09 -0500
committerKeith Packard <keithp@keithp.com>2012-01-03 12:31:13 -0500
commit116ac8d26101c06ad80a4e1cb560db1c525397f8 (patch)
treef80c7461b6dd9b5da2307806d5f6f759c6661471 /drivers
parent8ea30864229e54b01ac0e9fe88c4b733a940ec4e (diff)
drm/i915: Set two chicken bits implicated in missed IRQs on Ivybridge.
They don't fix our problems alone, but we're told to set them. Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h4
-rw-r--r--drivers/gpu/drm/i915/intel_display.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index eb44432d79bf..edced95aa75f 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -3020,6 +3020,10 @@
3020#define ILK_DPFC_DIS1 (1<<8) 3020#define ILK_DPFC_DIS1 (1<<8)
3021#define ILK_DPFC_DIS2 (1<<9) 3021#define ILK_DPFC_DIS2 (1<<9)
3022 3022
3023#define IVB_CHICKEN3 0x4200c
3024# define CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE (1 << 5)
3025# define CHICKEN3_DGMG_DONE_FIX_DISABLE (1 << 2)
3026
3023#define DISP_ARB_CTL 0x45000 3027#define DISP_ARB_CTL 0x45000
3024#define DISP_TILE_SURFACE_SWIZZLING (1<<13) 3028#define DISP_TILE_SURFACE_SWIZZLING (1<<13)
3025#define DISP_FBC_WM_DIS (1<<15) 3029#define DISP_FBC_WM_DIS (1<<15)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 30397b74a4a3..2e00c8ae361c 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -8450,6 +8450,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
8450 8450
8451 I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE); 8451 I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
8452 8452
8453 I915_WRITE(IVB_CHICKEN3,
8454 CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |
8455 CHICKEN3_DGMG_DONE_FIX_DISABLE);
8456
8453 for_each_pipe(pipe) { 8457 for_each_pipe(pipe) {
8454 I915_WRITE(DSPCNTR(pipe), 8458 I915_WRITE(DSPCNTR(pipe),
8455 I915_READ(DSPCNTR(pipe)) | 8459 I915_READ(DSPCNTR(pipe)) |