aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_engine_cs.c
diff options
context:
space:
mode:
authorOscar Mateo <oscar.mateo@intel.com>2017-09-07 11:40:04 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2017-09-07 16:58:55 -0400
commitefc886cb135595c7bec481a32d000dce865b7971 (patch)
treeac6042be708054593c4309f4aa04ba1fcf9daf91 /drivers/gpu/drm/i915/intel_engine_cs.c
parentc5ba5b24657e473b1c64b0a614b168a635a2c935 (diff)
drm/i915: Transform WaInPlaceDecompressionHang into a simple reg write
Afaict, GEN9_GAMT_ECO_REG_RW_IA does not live in the context, so writing it on every context creation is overkill (and wrong). v2: Missing end parenthesis Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Oscar Mateo <oscar.mateo@intel.com> Reviewed-by: MichaƂ Winiarski <michal.winiarski@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/1504798809-5653-1-git-send-email-oscar.mateo@intel.com Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_engine_cs.c')
-rw-r--r--drivers/gpu/drm/i915/intel_engine_cs.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
index b8e9a234af2d..674d686286b1 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -985,8 +985,9 @@ static int skl_init_workarounds(struct intel_engine_cs *engine)
985 985
986 /* WaInPlaceDecompressionHang:skl */ 986 /* WaInPlaceDecompressionHang:skl */
987 if (IS_SKL_REVID(dev_priv, SKL_REVID_H0, REVID_FOREVER)) 987 if (IS_SKL_REVID(dev_priv, SKL_REVID_H0, REVID_FOREVER))
988 WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA, 988 I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
989 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS); 989 (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
990 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
990 991
991 /* WaDisableLSQCROPERFforOCL:skl */ 992 /* WaDisableLSQCROPERFforOCL:skl */
992 ret = wa_ring_whitelist_reg(engine, GEN8_L3SQCREG4); 993 ret = wa_ring_whitelist_reg(engine, GEN8_L3SQCREG4);
@@ -1059,8 +1060,9 @@ static int bxt_init_workarounds(struct intel_engine_cs *engine)
1059 1060
1060 /* WaInPlaceDecompressionHang:bxt */ 1061 /* WaInPlaceDecompressionHang:bxt */
1061 if (IS_BXT_REVID(dev_priv, BXT_REVID_C0, REVID_FOREVER)) 1062 if (IS_BXT_REVID(dev_priv, BXT_REVID_C0, REVID_FOREVER))
1062 WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA, 1063 I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
1063 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS); 1064 (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
1065 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
1064 1066
1065 return 0; 1067 return 0;
1066} 1068}
@@ -1093,8 +1095,9 @@ static int cnl_init_workarounds(struct intel_engine_cs *engine)
1093 GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE); 1095 GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE);
1094 1096
1095 /* WaInPlaceDecompressionHang:cnl */ 1097 /* WaInPlaceDecompressionHang:cnl */
1096 WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA, 1098 I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
1097 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS); 1099 (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
1100 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
1098 1101
1099 /* WaPushConstantDereferenceHoldDisable:cnl */ 1102 /* WaPushConstantDereferenceHoldDisable:cnl */
1100 WA_SET_BIT(GEN7_ROW_CHICKEN2, PUSH_CONSTANT_DEREF_DISABLE); 1103 WA_SET_BIT(GEN7_ROW_CHICKEN2, PUSH_CONSTANT_DEREF_DISABLE);
@@ -1147,8 +1150,9 @@ static int kbl_init_workarounds(struct intel_engine_cs *engine)
1147 GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE); 1150 GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE);
1148 1151
1149 /* WaInPlaceDecompressionHang:kbl */ 1152 /* WaInPlaceDecompressionHang:kbl */
1150 WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA, 1153 I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
1151 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS); 1154 (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
1155 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
1152 1156
1153 /* WaDisableLSQCROPERFforOCL:kbl */ 1157 /* WaDisableLSQCROPERFforOCL:kbl */
1154 ret = wa_ring_whitelist_reg(engine, GEN8_L3SQCREG4); 1158 ret = wa_ring_whitelist_reg(engine, GEN8_L3SQCREG4);
@@ -1200,8 +1204,9 @@ static int cfl_init_workarounds(struct intel_engine_cs *engine)
1200 GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE); 1204 GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE);
1201 1205
1202 /* WaInPlaceDecompressionHang:cfl */ 1206 /* WaInPlaceDecompressionHang:cfl */
1203 WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA, 1207 I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
1204 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS); 1208 (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
1209 GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
1205 1210
1206 return 0; 1211 return 0;
1207} 1212}