aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2012-02-08 15:53:52 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-03-12 13:32:58 -0400
commita9941b5ec0105f00a7148d20e320af950dc0a7e9 (patch)
tree699b9fa454770822114ad3d0d2cb95999a2fc26a /drivers/gpu/drm
parenta80a210c243ce15778d00d93c4726192f5b288ae (diff)
drm/i915: gen7: Disable the RHWO optimization as it can cause GPU hangs.
commit d71de14ddf423ccc9a2e3f7e37553c99ead20d7c upstream. The BSpec Workarounds page states that bits 10 and 26 must be set to avoid 3D ring hangs. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44610 Tested-by: Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h3
-rw-r--r--drivers/gpu/drm/i915/intel_display.c4
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index ed679d04bbb..56315cbef1e 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2848,6 +2848,9 @@
2848#define DISP_FBC_WM_DIS (1<<15) 2848#define DISP_FBC_WM_DIS (1<<15)
2849 2849
2850/* GEN7 chicken */ 2850/* GEN7 chicken */
2851#define GEN7_COMMON_SLICE_CHICKEN1 0x7010
2852# define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC ((1<<10) | (1<<26))
2853
2851#define GEN7_L3CNTLREG1 0xB01C 2854#define GEN7_L3CNTLREG1 0xB01C
2852#define GEN7_WA_FOR_GEN7_L3_CONTROL 0x3C4FFF8C 2855#define GEN7_WA_FOR_GEN7_L3_CONTROL 0x3C4FFF8C
2853 2856
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index aac61b2849f..57f90437d08 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -7464,6 +7464,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
7464 7464
7465 I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE); 7465 I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
7466 7466
7467 /* Apply the WaDisableRHWOOptimizationForRenderHang workaround. */
7468 I915_WRITE(GEN7_COMMON_SLICE_CHICKEN1,
7469 GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC);
7470
7467 /* WaApplyL3ControlAndL3ChickenMode requires those two on Ivy Bridge */ 7471 /* WaApplyL3ControlAndL3ChickenMode requires those two on Ivy Bridge */
7468 I915_WRITE(GEN7_L3CNTLREG1, 7472 I915_WRITE(GEN7_L3CNTLREG1,
7469 GEN7_WA_FOR_GEN7_L3_CONTROL); 7473 GEN7_WA_FOR_GEN7_L3_CONTROL);