]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/xe/vf: Custom GT restart
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 4 Jun 2024 21:22:31 +0000 (23:22 +0200)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Thu, 6 Jun 2024 14:02:46 +0000 (16:02 +0200)
Only few steps from the GT restart phase are applicable for the
VF drivers, as initialization of PAT, WOPCM, MOCS or CCS mode can
be done only by the native or PF drivers. Use custom GT restart
function if running in VF mode.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240604212231.1416-5-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_gt.c

index 4e11662b78bda603696ee1113af01ee0bc98cd3b..57d84751e160d6c8ed28ed986046f3f29beab91f 100644 (file)
@@ -611,12 +611,34 @@ static int do_gt_reset(struct xe_gt *gt)
        return err;
 }
 
+static int vf_gt_restart(struct xe_gt *gt)
+{
+       int err;
+
+       err = xe_uc_sanitize_reset(&gt->uc);
+       if (err)
+               return err;
+
+       err = xe_uc_init_hw(&gt->uc);
+       if (err)
+               return err;
+
+       err = xe_uc_start(&gt->uc);
+       if (err)
+               return err;
+
+       return 0;
+}
+
 static int do_gt_restart(struct xe_gt *gt)
 {
        struct xe_hw_engine *hwe;
        enum xe_hw_engine_id id;
        int err;
 
+       if (IS_SRIOV_VF(gt_to_xe(gt)))
+               return vf_gt_restart(gt);
+
        xe_pat_init(gt);
 
        xe_gt_mcr_set_implicit_defaults(gt);