]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/xe/guc: Always add CT disable action during second init step
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Mon, 8 Sep 2025 10:20:51 +0000 (12:20 +0200)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 9 Sep 2025 18:38:25 +0000 (20:38 +0200)
On DGFX, during init_post_hwconfig() step, we are reinitializing
CTB BO in VRAM and we have to replace cleanup action to disable CT
communication prior to release of underlying BO.

But that introduces some discrepancy between DGFX and iGFX, as for
iGFX we keep previously added disable CT action that would be called
during unwind much later.

To keep the same flow on both types of platforms, always replace old
cleanup action and register new one.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Link: https://lore.kernel.org/r/20250908102053.539-2-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_guc_ct.c

index f40543b040d6a8e2e57b16852f4affc96f850251..12372d5b7067602175e3baf181ff930106f71fed 100644 (file)
@@ -300,12 +300,11 @@ int xe_guc_ct_init_post_hwconfig(struct xe_guc_ct *ct)
 
        xe_assert(xe, !xe_guc_ct_enabled(ct));
 
-       if (!IS_DGFX(xe))
-               return 0;
-
-       ret = xe_managed_bo_reinit_in_vram(xe, tile, &ct->bo);
-       if (ret)
-               return ret;
+       if (IS_DGFX(xe)) {
+               ret = xe_managed_bo_reinit_in_vram(xe, tile, &ct->bo);
+               if (ret)
+                       return ret;
+       }
 
        devm_release_action(xe->drm.dev, guc_action_disable_ct, ct);
        return devm_add_action_or_reset(xe->drm.dev, guc_action_disable_ct, ct);