drm/i915/skl: Implement WaDisablePowerCompilerClockGating
authorDamien Lespiau <damien.lespiau@intel.com>
Mon, 9 Feb 2015 19:33:16 +0000 (19:33 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 23 Feb 2015 16:31:15 +0000 (17:31 +0100)
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_ringbuffer.c

index 5814f67..f67e290 100644 (file)
@@ -5256,8 +5256,9 @@ enum skl_disp_power_wells {
 #define COMMON_SLICE_CHICKEN2                  0x7014
 # define GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE  (1<<0)
 
-#define HIZ_CHICKEN                            0x7018
-# define CHV_HZ_8X8_MODE_IN_1X                 (1<<15)
+#define HIZ_CHICKEN                                    0x7018
+# define CHV_HZ_8X8_MODE_IN_1X                         (1<<15)
+# define BDW_HIZ_POWER_COMPILER_CLOCK_GATING_DISABLE   (1<<3)
 
 #define GEN9_SLICE_COMMON_ECO_CHICKEN0         0x7308
 #define  DISABLE_PIXEL_MASK_CAMMING            (1<<14)
index e758c05..4570fe1 100644 (file)
@@ -1004,8 +1004,16 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
 
 static int skl_init_workarounds(struct intel_engine_cs *ring)
 {
+       struct drm_device *dev = ring->dev;
+       struct drm_i915_private *dev_priv = dev->dev_private;
+
        gen9_init_workarounds(ring);
 
+       /* WaDisablePowerCompilerClockGating:skl */
+       if (INTEL_REVID(dev) == SKL_REVID_B0)
+               WA_SET_BIT_MASKED(HIZ_CHICKEN,
+                                 BDW_HIZ_POWER_COMPILER_CLOCK_GATING_DISABLE);
+
        return 0;
 }