aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMika Kuoppala <mika.kuoppala@linux.intel.com>2015-12-18 09:14:53 -0500
committerMika Kuoppala <mika.kuoppala@intel.com>2015-12-18 12:55:03 -0500
commite238659ddd889a5d3fbdfa1a2ab120f90404bf41 (patch)
treecb34a4e6d4e3af5b6a9bda1c892d28db75b09e6a /drivers
parent821485dc2ad665f136c57ee589bf7a8210160fe2 (diff)
drm/i915/skl: Default to noncoherent access up to F0
The workarounds for disabling hdc invalidation and also forcing context to be non coherent, are advised to be used up until rev D0. However as it was found that rev F0, without the WaForceEnableNonCoherent might system hang if the mesa tried to use coherent mode. As these two workarounds are about non coherent access, are grouped in scope and they point the same HSD, increase the scope of both to set default behaviour to non coherent access. References: HSD: gen9lp/2131413 References: http://lists.freedesktop.org/archives/mesa-dev/2015-November/101515.html Cc: Ben Widawsky <benjamin.widawsky@intel.com> Cc: Francisco Jerez <currojerez@riseup.net> Reviewed-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1450448093-22906-1-git-send-email-mika.kuoppala@intel.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index eefce9a3e9c8..339701d7a9a5 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1018,10 +1018,6 @@ static int skl_init_workarounds(struct intel_engine_cs *ring)
1018 return ret; 1018 return ret;
1019 1019
1020 if (IS_SKL_REVID(dev, 0, SKL_REVID_D0)) { 1020 if (IS_SKL_REVID(dev, 0, SKL_REVID_D0)) {
1021 /* WaDisableHDCInvalidation:skl */
1022 I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) |
1023 BDW_DISABLE_HDC_INVALIDATION);
1024
1025 /* WaDisableChickenBitTSGBarrierAckForFFSliceCS:skl */ 1021 /* WaDisableChickenBitTSGBarrierAckForFFSliceCS:skl */
1026 I915_WRITE(FF_SLICE_CS_CHICKEN2, 1022 I915_WRITE(FF_SLICE_CS_CHICKEN2,
1027 _MASKED_BIT_ENABLE(GEN9_TSG_BARRIER_ACK_DISABLE)); 1023 _MASKED_BIT_ENABLE(GEN9_TSG_BARRIER_ACK_DISABLE));
@@ -1046,7 +1042,7 @@ static int skl_init_workarounds(struct intel_engine_cs *ring)
1046 WA_SET_BIT_MASKED(HIZ_CHICKEN, 1042 WA_SET_BIT_MASKED(HIZ_CHICKEN,
1047 BDW_HIZ_POWER_COMPILER_CLOCK_GATING_DISABLE); 1043 BDW_HIZ_POWER_COMPILER_CLOCK_GATING_DISABLE);
1048 1044
1049 if (IS_SKL_REVID(dev, 0, SKL_REVID_D0)) { 1045 if (IS_SKL_REVID(dev, 0, SKL_REVID_F0)) {
1050 /* 1046 /*
1051 *Use Force Non-Coherent whenever executing a 3D context. This 1047 *Use Force Non-Coherent whenever executing a 3D context. This
1052 * is a workaround for a possible hang in the unlikely event 1048 * is a workaround for a possible hang in the unlikely event
@@ -1055,6 +1051,10 @@ static int skl_init_workarounds(struct intel_engine_cs *ring)
1055 /* WaForceEnableNonCoherent:skl */ 1051 /* WaForceEnableNonCoherent:skl */
1056 WA_SET_BIT_MASKED(HDC_CHICKEN0, 1052 WA_SET_BIT_MASKED(HDC_CHICKEN0,
1057 HDC_FORCE_NON_COHERENT); 1053 HDC_FORCE_NON_COHERENT);
1054
1055 /* WaDisableHDCInvalidation:skl */
1056 I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) |
1057 BDW_DISABLE_HDC_INVALIDATION);
1058 } 1058 }
1059 1059
1060 /* WaBarrierPerformanceFixDisable:skl */ 1060 /* WaBarrierPerformanceFixDisable:skl */