diff options
author | Oscar Mateo <oscar.mateo@intel.com> | 2017-09-07 11:40:04 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2017-09-07 16:58:55 -0400 |
commit | efc886cb135595c7bec481a32d000dce865b7971 (patch) | |
tree | ac6042be708054593c4309f4aa04ba1fcf9daf91 /drivers/gpu/drm/i915/intel_engine_cs.c | |
parent | c5ba5b24657e473b1c64b0a614b168a635a2c935 (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.c | 25 |
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 | } |