aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni.dodonov@intel.com>2012-07-02 10:51:10 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-07-05 03:56:03 -0400
commit1544d9d57396d5c0c6b7644ed5ae1f4d6caad07a (patch)
tree72c827f18f745eb95167f637820f46bcd1b83c11 /drivers/gpu
parentcad2a2d7761238c0b9ff62eecc89215e6bd61831 (diff)
drm/i915: enable RC6 workaround on Haswell
For Haswell, on some of the early hardware revisions, it is possible to run into issues when RC6 state is enabled and when pipes change state. v2: add comment saying that this is for early revisions only. v3: beautify as suggested by Daniel Vetter. Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com> Acked-by: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h5
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c10
2 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 3be31a4cb8fb..4ddc62ecf839 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -4453,4 +4453,9 @@
4453#define SFUSE_STRAP_DDIC_DETECTED (1<<1) 4453#define SFUSE_STRAP_DDIC_DETECTED (1<<1)
4454#define SFUSE_STRAP_DDID_DETECTED (1<<0) 4454#define SFUSE_STRAP_DDID_DETECTED (1<<0)
4455 4455
4456#define WM_DBG 0x45280
4457#define WM_DBG_DISALLOW_MULTIPLE_LP (1<<0)
4458#define WM_DBG_DISALLOW_MAXFIFO (1<<1)
4459#define WM_DBG_DISALLOW_SPRITE (1<<2)
4460
4456#endif /* _I915_REG_H_ */ 4461#endif /* _I915_REG_H_ */
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 3c2724e42975..6e02698e9a3d 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3467,6 +3467,16 @@ static void haswell_init_clock_gating(struct drm_device *dev)
3467 /* WaDisable4x2SubspanOptimization */ 3467 /* WaDisable4x2SubspanOptimization */
3468 I915_WRITE(CACHE_MODE_1, 3468 I915_WRITE(CACHE_MODE_1,
3469 _MASKED_BIT_ENABLE(PIXEL_SUBSPAN_COLLECT_OPT_DISABLE)); 3469 _MASKED_BIT_ENABLE(PIXEL_SUBSPAN_COLLECT_OPT_DISABLE));
3470
3471 /* XXX: This is a workaround for early silicon revisions and should be
3472 * removed later.
3473 */
3474 I915_WRITE(WM_DBG,
3475 I915_READ(WM_DBG) |
3476 WM_DBG_DISALLOW_MULTIPLE_LP |
3477 WM_DBG_DISALLOW_SPRITE |
3478 WM_DBG_DISALLOW_MAXFIFO);
3479
3470} 3480}
3471 3481
3472static void ivybridge_init_clock_gating(struct drm_device *dev) 3482static void ivybridge_init_clock_gating(struct drm_device *dev)