drm/i915/mtl: Update cache coherency setting for context structure
authorZhanjun Dong <zhanjun.dong@intel.com>
Thu, 6 Jul 2023 17:47:04 +0000 (10:47 -0700)
committerDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Wed, 12 Jul 2023 16:27:43 +0000 (09:27 -0700)
As context structure is shared memory for CPU/GPU, Wa_22016122933 is
needed for this memory block as well.

Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
CC: Fei Yang <fei.yang@intel.com>
Reviewed-by: Fei Yang <fei.yang@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230706174704.177929-1-zhanjun.dong@intel.com
drivers/gpu/drm/i915/gt/intel_lrc.c

index a4ec20a..1b71010 100644 (file)
@@ -1092,8 +1092,15 @@ __lrc_alloc_state(struct intel_context *ce, struct intel_engine_cs *engine)
 
        obj = i915_gem_object_create_lmem(engine->i915, context_size,
                                          I915_BO_ALLOC_PM_VOLATILE);
-       if (IS_ERR(obj))
+       if (IS_ERR(obj)) {
                obj = i915_gem_object_create_shmem(engine->i915, context_size);
+               /*
+                * Wa_22016122933: For MTL the shared memory needs to be mapped
+                * as WC on CPU side and UC (PAT index 2) on GPU side
+                */
+               if (IS_METEORLAKE(engine->i915))
+                       i915_gem_object_set_cache_coherency(obj, I915_CACHE_NONE);
+       }
        if (IS_ERR(obj))
                return ERR_CAST(obj);