drm/i915: implement WaDisableL3CacheAging on VLV
authorJesse Barnes <jbarnes@virtuousgeek.org>
Thu, 25 Oct 2012 19:15:41 +0000 (12:15 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 11 Nov 2012 22:51:34 +0000 (23:51 +0100)
Needs to be set on every context restore as well, so set it as part of
the initial state so we can save/restore it.  Note this removes the IVB
workaround value from VLV and uses the default value, just adding in the
L3 cache aging disable bit, since the IVB value is wrong for VLV.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Antti Koskipää <antti.koskipaa@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_pm.c

index 5e820fa91dba4f2253f255318ede7bda6ca85b25..b0bb1a5985546b3df30025a64fb445d227e77919 100644 (file)
 
 #define GEN7_L3CNTLREG1                                0xB01C
 #define  GEN7_WA_FOR_GEN7_L3_CONTROL                   0x3C4FFF8C
+#define  GEN7_L3AGDIS                          (1<<19)
 
 #define GEN7_L3_CHICKEN_MODE_REGISTER          0xB030
 #define  GEN7_WA_L3_CHICKEN_MODE                               0x20000000
index 60d0404fe98b710698ac879c496e85a9da764e9c..a9e2c546de9a1896559c8551d3bc73f6036f6ebe 100644 (file)
@@ -3677,7 +3677,7 @@ static void valleyview_init_clock_gating(struct drm_device *dev)
                   GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC);
 
        /* WaApplyL3ControlAndL3ChickenMode requires those two on Ivy Bridge */
-       I915_WRITE(GEN7_L3CNTLREG1, GEN7_WA_FOR_GEN7_L3_CONTROL);
+       I915_WRITE(GEN7_L3CNTLREG1, I915_READ(GEN7_L3CNTLREG1) | GEN7_L3AGDIS);
        I915_WRITE(GEN7_L3_CHICKEN_MODE_REGISTER, GEN7_WA_L3_CHICKEN_MODE);
 
        /* WaForceL3Serialization */