Browse Source

drm/i915/gen9: Implement WaEnableYV12BugFixInHalfSliceChicken7

Move WaEnableYV12BugFixInHalfSliceChicken7 to gen9_init_workarounds

v2: Add stepping check.

Signed-off-by: Nick Hoath <nicholas.hoath@intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Nick Hoath 10 years ago
parent
commit
cac23df48a
2 changed files with 9 additions and 0 deletions
  1. 3 0
      drivers/gpu/drm/i915/i915_reg.h
  2. 6 0
      drivers/gpu/drm/i915/intel_ringbuffer.c

+ 3 - 0
drivers/gpu/drm/i915/i915_reg.h

@@ -6216,6 +6216,9 @@ enum skl_disp_power_wells {
 #define   GEN9_DISABLE_OCL_OOB_SUPPRESS_LOGIC	(1<<5)
 #define   GEN8_SAMPLER_POWER_BYPASS_DIS	(1<<1)
 
+#define GEN9_HALF_SLICE_CHICKEN7	0xe194
+#define   GEN9_ENABLE_YV12_BUGFIX	(1<<4)
+
 /* Audio */
 #define G4X_AUD_VID_DID			(dev_priv->info.display_mmio_offset + 0x62020)
 #define   INTEL_AUDIO_DEVCL		0x808629FB

+ 6 - 0
drivers/gpu/drm/i915/intel_ringbuffer.c

@@ -896,6 +896,12 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
 			~GEN9_DG_MIRROR_FIX_ENABLE);
 	}
 
+	if (INTEL_REVID(dev) >= SKL_REVID_C0) {
+		/* WaEnableYV12BugFixInHalfSliceChicken7:skl */
+		WA_SET_BIT_MASKED(GEN9_HALF_SLICE_CHICKEN7,
+				  GEN9_ENABLE_YV12_BUGFIX);
+	}
+
 	return 0;
 }