drm/i915/cnl: WaThrottleEUPerfToAvoidTDBackPressure:cnl(pre-prod)
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 6 Sep 2017 22:03:25 +0000 (15:03 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 6 Sep 2017 22:04:11 +0000 (15:04 -0700)
Wa for B-stepping only.

A for a hang issue that requires throttling EU performace
to 12.5% to avoid back pressure to thread dispatch

v2: Rebased. No change from v1.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Oscar Mateo <oscar.mateo@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170906220325.24524-1-rodrigo.vivi@intel.com
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_engine_cs.c

index 1878c4967529b1309e2e99dd8c81ecf1ea771647..2eff98cdcfade1e70fb63b548ea4258026207318 100644 (file)
@@ -8061,6 +8061,7 @@ enum {
 #define   FLOW_CONTROL_ENABLE          (1<<15)
 #define   PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE        (1<<8)
 #define   STALL_DOP_GATING_DISABLE             (1<<5)
+#define   THROTTLE_12_5                                (7<<2)
 
 #define GEN7_ROW_CHICKEN2              _MMIO(0xe4f4)
 #define GEN7_ROW_CHICKEN2_GT2          _MMIO(0xf4f4)
index 23812ec23969cd07907485a8ffdecfeac95009b3..b8e9a234af2ddcc2f1ed22def757c397dbd0f771 100644 (file)
@@ -1079,6 +1079,10 @@ static int cnl_init_workarounds(struct intel_engine_cs *engine)
        WA_SET_BIT_MASKED(CNL_HDC_CHICKEN0,
                          HDC_FORCE_CONTEXT_SAVE_RESTORE_NON_COHERENT);
 
+       /* WaThrottleEUPerfToAvoidTDBackPressure:cnl(pre-prod) */
+       if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0))
+               WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN, THROTTLE_12_5);
+
        /* WaDisableReplayBufferBankArbitrationOptimization:cnl */
        WA_SET_BIT_MASKED(COMMON_SLICE_CHICKEN2,
                          GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION);