diff mbox

drm/i915: Implement WaDisableFenceDestinationToSLM:bdw

Message ID 1401890778-14192-1-git-send-email-michel.thierry@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Michel Thierry June 4, 2014, 2:06 p.m. UTC
From: Michel Thierry <michel.thierry@intel.com>

HDC_CHICKEN0 bit 14 (Fence Destination To SLM Disable) must be
programmed by software to 1h (Disable) to work around a LSLM unit issue.

WaDisableFenceDestinationToSLM is only needed for BDW E,F step.

Issue: APDEV-3096
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
---
 drivers/gpu/drm/i915/i915_reg.h | 1 +
 drivers/gpu/drm/i915/intel_pm.c | 2 ++
 2 files changed, 3 insertions(+)

Comments

Ben Widawsky June 4, 2014, 7:23 p.m. UTC | #1
On Wed, Jun 04, 2014 at 03:06:18PM +0100, michel.thierry@intel.com wrote:
> From: Michel Thierry <michel.thierry@intel.com>
> 
> HDC_CHICKEN0 bit 14 (Fence Destination To SLM Disable) must be
> programmed by software to 1h (Disable) to work around a LSLM unit issue.
> 
> WaDisableFenceDestinationToSLM is only needed for BDW E,F step.
> 
> Issue: APDEV-3096
> Signed-off-by: Michel Thierry <michel.thierry@intel.com>

Docs say Gt3 only.

Otherwise, it's
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 247be2a..4ff95a8 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -4672,6 +4672,7 @@  enum punit_power_well {
 
 /* GEN8 chicken */
 #define HDC_CHICKEN0				0x7300
+#define  HDC_FENCE_DESTINATION_TO_SLM_DISABLE	(1<<14)
 #define  HDC_FORCE_NON_COHERENT			(1<<4)
 
 /* WaCatErrorRejectionIssue */
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index ee27d74..3968078 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -5330,8 +5330,10 @@  static void gen8_init_clock_gating(struct drm_device *dev)
 	 * workaround for for a possible hang in the unlikely event a TLB
 	 * invalidation occurs during a PSD flush.
 	 */
+	/* WaDisableFenceDestinationToSLM:bdw */
 	I915_WRITE(HDC_CHICKEN0,
 		   I915_READ(HDC_CHICKEN0) |
+		   _MASKED_BIT_ENABLE(HDC_FENCE_DESTINATION_TO_SLM_DISABLE) |
 		   _MASKED_BIT_ENABLE(HDC_FORCE_NON_COHERENT));
 
 	/* WaVSRefCountFullforceMissDisable:bdw */