[Intel-gfx] [PATCH] drm/i915: Move L3 MOCS to engine reset domain.

Prathap Kumar Valsan prathap.kumar.valsan at intel.com
Wed Oct 16 04:05:58 UTC 2019


Gen12 has L3 MOCS in engine reset domain, having us to re-initialize on
an engine reset.

References: https://bugs.freedesktop.org/show_bug.cgi?id=111723
References: https://bugs.freedesktop.org/show_bug.cgi?id=111645
References: HSDES#1607983814
References: HSDES#14010115701

Signed-off-by: Prathap Kumar Valsan <prathap.kumar.valsan at intel.com>
---
 drivers/gpu/drm/i915/gt/intel_mocs.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c b/drivers/gpu/drm/i915/gt/intel_mocs.c
index 728704bbbe18..774c5df0d0e9 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -365,6 +365,8 @@ static u32 get_entry_control(const struct drm_i915_mocs_table *table,
 	return table->table[I915_MOCS_PTE].control_value;
 }
 
+static void intel_mocs_init_l3cc_table(struct intel_gt *gt);
+
 /**
  * intel_mocs_init_engine() - emit the mocs control table
  * @engine:	The engine for whom to emit the registers.
@@ -380,6 +382,9 @@ void intel_mocs_init_engine(struct intel_engine_cs *engine)
 	unsigned int index;
 	u32 unused_value;
 
+	if (IS_GEN(gt->i915, 12) && engine->class == RENDER_CLASS)
+		intel_mocs_init_l3cc_table(gt);
+
 	/* Platforms with global MOCS do not need per-engine initialization. */
 	if (HAS_GLOBAL_MOCS_REGISTERS(gt->i915))
 		return;
-- 
2.20.1



More information about the Intel-gfx mailing list