diff options
author | Valtteri Rantala <valtteri.rantala@intel.com> | 2017-11-28 09:45:05 -0500 |
---|---|---|
committer | Imre Deak <imre.deak@intel.com> | 2017-11-30 06:32:51 -0500 |
commit | 7436830c8d1a3aab61d131d5e0494e2dbb9e55bd (patch) | |
tree | d880812a8c4a5449b84695db5b605c98ca40ab3b | |
parent | cc44085616a94a998dc8f708e37ec9df2df97a87 (diff) |
drm/i915/glk: Apply WaProgramL3SqcReg1DefaultForPerf for GLK too
Testing the texture read performance shows that the same tuning for
the SQ credits is needed on GLK as on BXT/APL. This has been also
confirmed by Altug from the HW team.
V4: Rebase + fix
Signed-off-by: Valtteri Rantala <valtteri.rantala@intel.com>
Reviewed-by: David Weinehall <david.weinehall@linux.intel.com> (v1)
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1511880305-12166-1-git-send-email-valtteri.rantala@intel.com
-rw-r--r-- | drivers/gpu/drm/i915/intel_engine_cs.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c index cffd0c812b7e..86d4c85c8725 100644 --- a/drivers/gpu/drm/i915/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/intel_engine_cs.c | |||
@@ -1067,6 +1067,15 @@ static int gen9_init_workarounds(struct intel_engine_cs *engine) | |||
1067 | /* WaDisableSTUnitPowerOptimization:skl,bxt,kbl,glk,cfl */ | 1067 | /* WaDisableSTUnitPowerOptimization:skl,bxt,kbl,glk,cfl */ |
1068 | WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN2, GEN8_ST_PO_DISABLE); | 1068 | WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN2, GEN8_ST_PO_DISABLE); |
1069 | 1069 | ||
1070 | /* WaProgramL3SqcReg1DefaultForPerf:bxt,glk */ | ||
1071 | if (IS_GEN9_LP(dev_priv)) { | ||
1072 | u32 val = I915_READ(GEN8_L3SQCREG1); | ||
1073 | |||
1074 | val &= ~L3_PRIO_CREDITS_MASK; | ||
1075 | val |= L3_GENERAL_PRIO_CREDITS(62) | L3_HIGH_PRIO_CREDITS(2); | ||
1076 | I915_WRITE(GEN8_L3SQCREG1, val); | ||
1077 | } | ||
1078 | |||
1070 | /* WaOCLCoherentLineFlush:skl,bxt,kbl,cfl */ | 1079 | /* WaOCLCoherentLineFlush:skl,bxt,kbl,cfl */ |
1071 | I915_WRITE(GEN8_L3SQCREG4, (I915_READ(GEN8_L3SQCREG4) | | 1080 | I915_WRITE(GEN8_L3SQCREG4, (I915_READ(GEN8_L3SQCREG4) | |
1072 | GEN8_LQSC_FLUSH_COHERENT_LINES)); | 1081 | GEN8_LQSC_FLUSH_COHERENT_LINES)); |
@@ -1184,7 +1193,6 @@ static int skl_init_workarounds(struct intel_engine_cs *engine) | |||
1184 | static int bxt_init_workarounds(struct intel_engine_cs *engine) | 1193 | static int bxt_init_workarounds(struct intel_engine_cs *engine) |
1185 | { | 1194 | { |
1186 | struct drm_i915_private *dev_priv = engine->i915; | 1195 | struct drm_i915_private *dev_priv = engine->i915; |
1187 | u32 val; | ||
1188 | int ret; | 1196 | int ret; |
1189 | 1197 | ||
1190 | ret = gen9_init_workarounds(engine); | 1198 | ret = gen9_init_workarounds(engine); |
@@ -1199,12 +1207,6 @@ static int bxt_init_workarounds(struct intel_engine_cs *engine) | |||
1199 | I915_WRITE(FF_SLICE_CS_CHICKEN2, | 1207 | I915_WRITE(FF_SLICE_CS_CHICKEN2, |
1200 | _MASKED_BIT_ENABLE(GEN9_POOLED_EU_LOAD_BALANCING_FIX_DISABLE)); | 1208 | _MASKED_BIT_ENABLE(GEN9_POOLED_EU_LOAD_BALANCING_FIX_DISABLE)); |
1201 | 1209 | ||
1202 | /* WaProgramL3SqcReg1DefaultForPerf:bxt */ | ||
1203 | val = I915_READ(GEN8_L3SQCREG1); | ||
1204 | val &= ~L3_PRIO_CREDITS_MASK; | ||
1205 | val |= L3_GENERAL_PRIO_CREDITS(62) | L3_HIGH_PRIO_CREDITS(2); | ||
1206 | I915_WRITE(GEN8_L3SQCREG1, val); | ||
1207 | |||
1208 | /* WaToEnableHwFixForPushConstHWBug:bxt */ | 1210 | /* WaToEnableHwFixForPushConstHWBug:bxt */ |
1209 | WA_SET_BIT_MASKED(COMMON_SLICE_CHICKEN2, | 1211 | WA_SET_BIT_MASKED(COMMON_SLICE_CHICKEN2, |
1210 | GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION); | 1212 | GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION); |