aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Kuoppala <mika.kuoppala@linux.intel.com>2016-06-07 10:19:07 -0400
committerMika Kuoppala <mika.kuoppala@intel.com>2016-07-15 08:51:26 -0400
commit7b9005cd45f34f5c87fd2e28f4e56b348af4ddc5 (patch)
tree8a7bd6c895cdd0f670f1d3c01f250a2955b0732a
parentb90420467232529a4448364d8bd860fc0176d3b6 (diff)
drm/i915: Add WaInsertDummyPushConstP for bxt and kbl
Add this workaround for both bxt and kbl up to until rev B0. References: HSD#2136703 Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1465309159-30531-16-git-send-email-mika.kuoppala@intel.com (cherry picked from commit ad2bdb44b19529ba992bd0b7667e91b14fe9a9ee) Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h1
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c10
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index b7cfb38c3fb8..349470d0ff1c 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -6084,6 +6084,7 @@ enum skl_disp_power_wells {
6084# define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC ((1<<10) | (1<<26)) 6084# define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC ((1<<10) | (1<<26))
6085# define GEN9_RHWO_OPTIMIZATION_DISABLE (1<<14) 6085# define GEN9_RHWO_OPTIMIZATION_DISABLE (1<<14)
6086#define COMMON_SLICE_CHICKEN2 _MMIO(0x7014) 6086#define COMMON_SLICE_CHICKEN2 _MMIO(0x7014)
6087# define GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION (1<<8)
6087# define GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE (1<<0) 6088# define GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE (1<<0)
6088 6089
6089#define HIZ_CHICKEN _MMIO(0x7018) 6090#define HIZ_CHICKEN _MMIO(0x7018)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 8106a700681a..da9d243aaf34 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1186,6 +1186,11 @@ static int bxt_init_workarounds(struct intel_engine_cs *engine)
1186 return ret; 1186 return ret;
1187 } 1187 }
1188 1188
1189 /* WaInsertDummyPushConstPs:bxt */
1190 if (IS_BXT_REVID(dev_priv, 0, BXT_REVID_B0))
1191 WA_SET_BIT_MASKED(COMMON_SLICE_CHICKEN2,
1192 GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION);
1193
1189 return 0; 1194 return 0;
1190} 1195}
1191 1196
@@ -1220,6 +1225,11 @@ static int kbl_init_workarounds(struct intel_engine_cs *engine)
1220 I915_WRITE(GEN8_L3SQCREG4, I915_READ(GEN8_L3SQCREG4) | 1225 I915_WRITE(GEN8_L3SQCREG4, I915_READ(GEN8_L3SQCREG4) |
1221 GEN8_LQSC_RO_PERF_DIS); 1226 GEN8_LQSC_RO_PERF_DIS);
1222 1227
1228 /* WaInsertDummyPushConstPs:kbl */
1229 if (IS_KBL_REVID(dev_priv, 0, KBL_REVID_B0))
1230 WA_SET_BIT_MASKED(COMMON_SLICE_CHICKEN2,
1231 GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION);
1232
1223 /* WaDisableLSQCROPERFforOCL:kbl */ 1233 /* WaDisableLSQCROPERFforOCL:kbl */
1224 ret = wa_ring_whitelist_reg(engine, GEN8_L3SQCREG4); 1234 ret = wa_ring_whitelist_reg(engine, GEN8_L3SQCREG4);
1225 if (ret) 1235 if (ret)