]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
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 7c1fe9ac120d705cbd9b693b476e788d2e9e906c..66c4efca80fe0cc2042a3c0afdba9eabdbc53ca3 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;