drm/i915: enable platform support for 2M pages
authorMatthew Auld <matthew.auld@intel.com>
Fri, 6 Oct 2017 22:18:33 +0000 (23:18 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Sat, 7 Oct 2017 09:12:05 +0000 (10:12 +0100)
For gen8+ platforms which support the 48b PPGTT, enable platform level
support for 2M pages. Also enable for mock testing.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171006145041.21673-22-matthew.auld@intel.com
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171006221833.32439-21-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_pci.c
drivers/gpu/drm/i915/selftests/mock_gem_device.c

index 8d349ae..bf467f3 100644 (file)
@@ -376,7 +376,8 @@ static const struct intel_device_info intel_haswell_gt3_info __initconst = {
 #define GEN8_FEATURES \
        G75_FEATURES, \
        BDW_COLORS, \
-       GEN_DEFAULT_PAGE_SIZES, \
+       .page_sizes = I915_GTT_PAGE_SIZE_4K | \
+                     I915_GTT_PAGE_SIZE_2M, \
        .has_logical_ring_contexts = 1, \
        .has_full_48bit_ppgtt = 1, \
        .has_64bit_reloc = 1, \
@@ -437,7 +438,8 @@ static const struct intel_device_info intel_cherryview_info __initconst = {
 
 #define GEN9_DEFAULT_PAGE_SIZES \
        .page_sizes = I915_GTT_PAGE_SIZE_4K | \
-                     I915_GTT_PAGE_SIZE_64K
+                     I915_GTT_PAGE_SIZE_64K | \
+                     I915_GTT_PAGE_SIZE_2M
 
 #define GEN9_FEATURES \
        GEN8_FEATURES, \
index 7a9735d..04eb936 100644 (file)
@@ -176,7 +176,8 @@ struct drm_i915_private *mock_gem_device(void)
 
        mkwrite_device_info(i915)->page_sizes =
                I915_GTT_PAGE_SIZE_4K |
-               I915_GTT_PAGE_SIZE_64K;
+               I915_GTT_PAGE_SIZE_64K |
+               I915_GTT_PAGE_SIZE_2M;
 
        spin_lock_init(&i915->mm.object_stat_lock);
        mock_uncore_init(i915);