drm/xe/vf: Assume fixed GSM size if VF
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 13 Feb 2024 15:43:48 +0000 (16:43 +0100)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 13 Feb 2024 17:59:47 +0000 (18:59 +0100)
VFs can't use size mirrored from PCI config, but it should be
safe to assume it covers full 4GiB GGTT.

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-2-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_ggtt.c

index 6fdf830..ab96edb 100644 (file)
@@ -20,6 +20,7 @@
 #include "xe_gt_tlb_invalidation.h"
 #include "xe_map.h"
 #include "xe_mmio.h"
+#include "xe_sriov.h"
 #include "xe_wopcm.h"
 
 #define XELPG_GGTT_PTE_PAT0    BIT_ULL(52)
@@ -144,7 +145,11 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt)
        struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
        unsigned int gsm_size;
 
-       gsm_size = probe_gsm_size(pdev);
+       if (IS_SRIOV_VF(xe))
+               gsm_size = SZ_8M; /* GGTT is expected to be 4GiB */
+       else
+               gsm_size = probe_gsm_size(pdev);
+
        if (gsm_size == 0) {
                drm_err(&xe->drm, "Hardware reported no preallocated GSM\n");
                return -ENOMEM;