drm/xe/vf: Don't program PAT if VF
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 13 Feb 2024 15:43:54 +0000 (16:43 +0100)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 13 Feb 2024 17:59:53 +0000 (18:59 +0100)
PAT programming can only be done by the PF driver.
Besides VF drivers don't have access to control registers.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240213154355.1221-8-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_pat.c

index 1ff6bc79e7d4446390c685e6feb6635bf7c74bad..e148934d554b0d08beb23b9b08f534b7bff582e7 100644 (file)
@@ -13,6 +13,7 @@
 #include "xe_gt.h"
 #include "xe_gt_mcr.h"
 #include "xe_mmio.h"
+#include "xe_sriov.h"
 
 #define _PAT_ATS                               0x47fc
 #define _PAT_INDEX(index)                      _PICK_EVEN_2RANGES(index, 8, \
@@ -433,6 +434,10 @@ void xe_pat_init_early(struct xe_device *xe)
                drm_err(&xe->drm, "Missing PAT table for platform with graphics version %d.%02d!\n",
                        GRAPHICS_VER(xe), GRAPHICS_VERx100(xe) % 100);
        }
+
+       /* VFs can't program nor dump PAT settings */
+       if (IS_SRIOV_VF(xe))
+               xe->pat.ops = NULL;
 }
 
 void xe_pat_init(struct xe_gt *gt)