aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorArun Siluvery <arun.siluvery@linux.intel.com>2015-09-25 12:40:45 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-09-30 04:20:33 -0400
commita340af58730e892ccb507f7a70054f7909b28d49 (patch)
treef44c4a5f548af5caf6fafa2a4ccfebcc3a87c1f8 /drivers/gpu/drm/i915/intel_ringbuffer.c
parent7eebcde6e526a53e06d238f6daf788df3c8e7620 (diff)
drm/i915/gen8: Move WaForceEnableNonCoherent to common init fn
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 199021c27325..9b42157107e1 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -814,6 +814,14 @@ static int gen8_init_workarounds(struct intel_engine_cs *ring)
814 WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN, 814 WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
815 PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE); 815 PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE);
816 816
817 /* Use Force Non-Coherent whenever executing a 3D context. This is a
818 * workaround for for a possible hang in the unlikely event a TLB
819 * invalidation occurs during a PSD flush.
820 */
821 /* WaForceEnableNonCoherent:bdw,chv */
822 WA_SET_BIT_MASKED(HDC_CHICKEN0,
823 HDC_FORCE_NON_COHERENT);
824
817 /* From the Haswell PRM, Command Reference: Registers, CACHE_MODE_0: 825 /* From the Haswell PRM, Command Reference: Registers, CACHE_MODE_0:
818 * "The Hierarchical Z RAW Stall Optimization allows non-overlapping 826 * "The Hierarchical Z RAW Stall Optimization allows non-overlapping
819 * polygons in the same 8x4 pixel/sample area to be processed without 827 * polygons in the same 8x4 pixel/sample area to be processed without
@@ -862,13 +870,7 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
862 WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN3, 870 WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN3,
863 GEN8_SAMPLER_POWER_BYPASS_DIS); 871 GEN8_SAMPLER_POWER_BYPASS_DIS);
864 872
865 /* Use Force Non-Coherent whenever executing a 3D context. This is a
866 * workaround for for a possible hang in the unlikely event a TLB
867 * invalidation occurs during a PSD flush.
868 */
869 WA_SET_BIT_MASKED(HDC_CHICKEN0, 873 WA_SET_BIT_MASKED(HDC_CHICKEN0,
870 /* WaForceEnableNonCoherent:bdw */
871 HDC_FORCE_NON_COHERENT |
872 /* WaForceContextSaveRestoreNonCoherent:bdw */ 874 /* WaForceContextSaveRestoreNonCoherent:bdw */
873 HDC_FORCE_CONTEXT_SAVE_RESTORE_NON_COHERENT | 875 HDC_FORCE_CONTEXT_SAVE_RESTORE_NON_COHERENT |
874 /* WaHdcDisableFetchWhenMasked:bdw */ 876 /* WaHdcDisableFetchWhenMasked:bdw */
@@ -892,14 +894,8 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
892 /* WaDisableThreadStallDopClockGating:chv */ 894 /* WaDisableThreadStallDopClockGating:chv */
893 WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN, STALL_DOP_GATING_DISABLE); 895 WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN, STALL_DOP_GATING_DISABLE);
894 896
895 /* Use Force Non-Coherent whenever executing a 3D context. This is a
896 * workaround for a possible hang in the unlikely event a TLB
897 * invalidation occurs during a PSD flush.
898 */
899 /* WaForceEnableNonCoherent:chv */
900 /* WaHdcDisableFetchWhenMasked:chv */ 897 /* WaHdcDisableFetchWhenMasked:chv */
901 WA_SET_BIT_MASKED(HDC_CHICKEN0, 898 WA_SET_BIT_MASKED(HDC_CHICKEN0,
902 HDC_FORCE_NON_COHERENT |
903 HDC_DONOT_FETCH_MEM_WHEN_MASKED); 899 HDC_DONOT_FETCH_MEM_WHEN_MASKED);
904 900
905 /* Improve HiZ throughput on CHV. */ 901 /* Improve HiZ throughput on CHV. */