drm/xe/vf: Allow VF to initialize MCR tables
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Sat, 7 Feb 2026 21:44:28 +0000 (22:44 +0100)
committerMatt Roper <matthew.d.roper@intel.com>
Mon, 9 Feb 2026 20:30:34 +0000 (12:30 -0800)
While VFs can't access MCR registers, it's still safe to initialize
our per-platform MCR tables, as we might need them later in the LRC
programming, as engines itself may access MCR steer registers and
thanks to all our past fixes to the VF probe initialization order,
VFs are able to use values of the fuse registers needed here.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Link: https://patch.msgid.link/20260207214428.5205-1-michal.wajdeczko@intel.com
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
drivers/gpu/drm/xe/xe_gt_mcr.c

index 7c1fe9a..66c4efc 100644 (file)
@@ -505,9 +505,6 @@ void xe_gt_mcr_init_early(struct xe_gt *gt)
 
        spin_lock_init(&gt->mcr_lock);
 
-       if (IS_SRIOV_VF(xe))
-               return;
-
        if (gt->info.type == XE_GT_TYPE_MEDIA) {
                drm_WARN_ON(&xe->drm, MEDIA_VER(xe) < 13);
 
@@ -568,9 +565,6 @@ void xe_gt_mcr_init_early(struct xe_gt *gt)
  */
 void xe_gt_mcr_init(struct xe_gt *gt)
 {
-       if (IS_SRIOV_VF(gt_to_xe(gt)))
-               return;
-
        /* Select non-terminated steering target for each type */
        for (int i = 0; i < NUM_STEERING_TYPES; i++) {
                gt->steering[i].initialized = true;