]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe: Don't disable GuCRC in suspend path
authorVinay Belgaumkar <vinay.belgaumkar@intel.com>
Tue, 3 Mar 2026 18:14:16 +0000 (10:14 -0800)
committerVinay Belgaumkar <vinay.belgaumkar@intel.com>
Fri, 6 Mar 2026 18:59:43 +0000 (10:59 -0800)
GuCRC should not be disabled in xe_guc_stop_prepare() as C6 is a
prerequisite for s0ix and s2idle. This is a regression caused by
the patch below.

Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/7510
Fixes: 40a684f91d26 ("drm/xe: Decouple GuC RC code from xe_guc_pc")
Cc: Riana Tauro <riana.tauro@intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Reviewed-by: Riana Tauro <riana.tauro@intel.com>
Link: https://patch.msgid.link/20260303181416.3880937-1-vinay.belgaumkar@intel.com
drivers/gpu/drm/xe/xe_gt.c
drivers/gpu/drm/xe/xe_guc.c

index b455af1e60728af3a1a70d3b67825951c1a28aac..f3bb856aad2ac0c9892db3fd605d90755fcf38a2 100644 (file)
@@ -38,6 +38,7 @@
 #include "xe_gt_topology.h"
 #include "xe_guc_exec_queue_types.h"
 #include "xe_guc_pc.h"
+#include "xe_guc_rc.h"
 #include "xe_guc_submit.h"
 #include "xe_hw_fence.h"
 #include "xe_hw_engine_class_sysfs.h"
@@ -896,6 +897,7 @@ static void gt_reset_worker(struct work_struct *w)
        if (IS_SRIOV_PF(gt_to_xe(gt)))
                xe_gt_sriov_pf_stop_prepare(gt);
 
+       xe_guc_rc_disable(&gt->uc.guc);
        xe_uc_stop_prepare(&gt->uc);
        xe_pagefault_reset(gt_to_xe(gt), gt);
 
index 54d2fc780127742e2e152da438c7d3e8332f3cbc..e75653a5e797be0ea7acd725cfe785ea5e4cd8db 100644 (file)
@@ -1671,7 +1671,6 @@ void xe_guc_stop_prepare(struct xe_guc *guc)
        if (!IS_SRIOV_VF(guc_to_xe(guc))) {
                int err;
 
-               xe_guc_rc_disable(guc);
                err = xe_guc_pc_stop(&guc->pc);
                xe_gt_WARN(guc_to_gt(guc), err, "Failed to stop GuC PC: %pe\n",
                           ERR_PTR(err));