Jiri Slaby 95c8b7
From: Haridhar Kalvala <haridhar.kalvala@intel.com>
Jiri Slaby 95c8b7
Date: Tue, 4 Apr 2023 23:02:20 +0530
Jiri Slaby 95c8b7
Subject: [PATCH] drm/i915/mtl: Add Wa_14017856879
Jiri Slaby 95c8b7
References: bsc#1012628
Jiri Slaby 95c8b7
Patch-mainline: 6.3.3
Jiri Slaby 95c8b7
Git-commit: 4b51210f98c2b89ce37aede5b8dc5105be0572c6
Jiri Slaby 95c8b7
Jiri Slaby 95c8b7
[ Upstream commit 4b51210f98c2b89ce37aede5b8dc5105be0572c6 ]
Jiri Slaby 95c8b7
Jiri Slaby 95c8b7
Wa_14017856879 implementation for mtl.
Jiri Slaby 95c8b7
Jiri Slaby 95c8b7
Bspec: 46046
Jiri Slaby 95c8b7
Jiri Slaby 95c8b7
Signed-off-by: Haridhar Kalvala <haridhar.kalvala@intel.com>
Jiri Slaby 95c8b7
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Jiri Slaby 95c8b7
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Jiri Slaby 95c8b7
Link: https://patchwork.freedesktop.org/patch/msgid/20230404173220.3175577-1-haridhar.kalvala@intel.com
Jiri Slaby 95c8b7
Stable-dep-of: 81900e3a3775 ("drm/i915: disable sampler indirect state in bindless heap")
Jiri Slaby 95c8b7
Signed-off-by: Sasha Levin <sashal@kernel.org>
Jiri Slaby 95c8b7
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Jiri Slaby 95c8b7
---
Jiri Slaby 95c8b7
 drivers/gpu/drm/i915/gt/intel_gt_regs.h     | 2 ++
Jiri Slaby 95c8b7
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 +++++
Jiri Slaby 95c8b7
 2 files changed, 7 insertions(+)
Jiri Slaby 95c8b7
Jiri Slaby 95c8b7
diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
Jiri Slaby 95c8b7
index 15b86368..72275749 100644
Jiri Slaby 95c8b7
--- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
Jiri Slaby 95c8b7
+++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
Jiri Slaby 95c8b7
@@ -1172,7 +1172,9 @@
Jiri Slaby 95c8b7
 #define   THREAD_EX_ARB_MODE_RR_AFTER_DEP	REG_FIELD_PREP(THREAD_EX_ARB_MODE, 0x2)
Jiri Slaby 95c8b7
 
Jiri Slaby 95c8b7
 #define HSW_ROW_CHICKEN3			_MMIO(0xe49c)
Jiri Slaby 95c8b7
+#define GEN9_ROW_CHICKEN3			MCR_REG(0xe49c)
Jiri Slaby 95c8b7
 #define   HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE	(1 << 6)
Jiri Slaby 95c8b7
+#define   MTL_DISABLE_FIX_FOR_EOT_FLUSH		REG_BIT(9)
Jiri Slaby 95c8b7
 
Jiri Slaby 95c8b7
 #define GEN8_ROW_CHICKEN			MCR_REG(0xe4f0)
Jiri Slaby 95c8b7
 #define   FLOW_CONTROL_ENABLE			REG_BIT(15)
Jiri Slaby 95c8b7
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
Jiri Slaby 95c8b7
index bfdffb6a..b7c6c078 100644
Jiri Slaby 95c8b7
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
Jiri Slaby 95c8b7
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
Jiri Slaby 95c8b7
@@ -3015,6 +3015,11 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li
Jiri Slaby 95c8b7
 
Jiri Slaby 95c8b7
 	add_render_compute_tuning_settings(i915, wal);
Jiri Slaby 95c8b7
 
Jiri Slaby 95c8b7
+	if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) ||
Jiri Slaby 95c8b7
+	    IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER))
Jiri Slaby 95c8b7
+		/* Wa_14017856879 */
Jiri Slaby 95c8b7
+		wa_mcr_masked_en(wal, GEN9_ROW_CHICKEN3, MTL_DISABLE_FIX_FOR_EOT_FLUSH);
Jiri Slaby 95c8b7
+
Jiri Slaby 95c8b7
 	if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) ||
Jiri Slaby 95c8b7
 	    IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0))
Jiri Slaby 95c8b7
 		/*
Jiri Slaby 95c8b7
-- 
Jiri Slaby 95c8b7
2.35.3
Jiri Slaby 95c8b7