drm/i915: gracefully error out on platform with small-bar
authorNirmoy Das <nirmoy.das@intel.com>
Wed, 11 May 2022 15:37:46 +0000 (17:37 +0200)
committerMatthew Auld <matthew.auld@intel.com>
Tue, 17 May 2022 08:34:52 +0000 (09:34 +0100)
Currently we just fatally crash during module load if we encounter
small-BAR configuration on DG2. We have most of the support already, but
we lack the final uAPI bits to tie it all together.

Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
[mauld: reword the commit and error message slightly]
Link: https://patchwork.freedesktop.org/patch/msgid/20220511153746.14142-3-nirmoy.das@intel.com
drivers/gpu/drm/i915/gt/intel_region_lmem.c

index cd105ec104299d96368430606799652a50f3a128..e9c12e0d6f59f385e17663205367d9827e9373d2 100644 (file)
@@ -111,6 +111,12 @@ static struct intel_memory_region *setup_lmem(struct intel_gt *gt)
                flat_ccs_base = intel_gt_read_register(gt, XEHPSDV_FLAT_CCS_BASE_ADDR);
                flat_ccs_base = (flat_ccs_base >> XEHPSDV_CCS_BASE_SHIFT) * SZ_64K;
 
+               /* FIXME: Remove this when we have small-bar enabled */
+               if (pci_resource_len(pdev, 2) < lmem_size) {
+                       drm_err(&i915->drm, "System requires small-BAR support, which is currently unsupported on this kernel\n");
+                       return ERR_PTR(-EINVAL);
+               }
+
                if (GEM_WARN_ON(lmem_size < flat_ccs_base))
                        return ERR_PTR(-EIO);