drm/i915: move page_sizes to runtime info
authorJani Nikula <jani.nikula@intel.com>
Fri, 19 Aug 2022 12:02:39 +0000 (15:02 +0300)
committerJani Nikula <jani.nikula@intel.com>
Wed, 24 Aug 2022 08:45:26 +0000 (11:45 +0300)
If it's modified runtime, it's runtime info.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Maarten Lankhort <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/f6825dd97d2ba63aa395c30131c4b9e6ef32b0c8.1660910433.git.jani.nikula@intel.com
drivers/gpu/drm/i915/gem/i915_gem_pages.c
drivers/gpu/drm/i915/gem/selftests/huge_pages.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_pci.c
drivers/gpu/drm/i915/intel_device_info.c
drivers/gpu/drm/i915/intel_device_info.h
drivers/gpu/drm/i915/selftests/mock_gem_device.c

index 97c820e..0325ffa 100644 (file)
@@ -19,7 +19,7 @@ void __i915_gem_object_set_pages(struct drm_i915_gem_object *obj,
                                 unsigned int sg_page_sizes)
 {
        struct drm_i915_private *i915 = to_i915(obj->base.dev);
-       unsigned long supported = INTEL_INFO(i915)->page_sizes;
+       unsigned long supported = RUNTIME_INFO(i915)->page_sizes;
        bool shrinkable;
        int i;
 
index 72ce2c9..8fcffd1 100644 (file)
@@ -358,7 +358,7 @@ fake_huge_pages_object(struct drm_i915_private *i915, u64 size, bool single)
 static int igt_check_page_sizes(struct i915_vma *vma)
 {
        struct drm_i915_private *i915 = vma->vm->i915;
-       unsigned int supported = INTEL_INFO(i915)->page_sizes;
+       unsigned int supported = RUNTIME_INFO(i915)->page_sizes;
        struct drm_i915_gem_object *obj = vma->obj;
        int err;
 
@@ -419,7 +419,7 @@ static int igt_mock_exhaust_device_supported_pages(void *arg)
 {
        struct i915_ppgtt *ppgtt = arg;
        struct drm_i915_private *i915 = ppgtt->vm.i915;
-       unsigned int saved_mask = INTEL_INFO(i915)->page_sizes;
+       unsigned int saved_mask = RUNTIME_INFO(i915)->page_sizes;
        struct drm_i915_gem_object *obj;
        struct i915_vma *vma;
        int i, j, single;
@@ -438,7 +438,7 @@ static int igt_mock_exhaust_device_supported_pages(void *arg)
                                combination |= page_sizes[j];
                }
 
-               mkwrite_device_info(i915)->page_sizes = combination;
+               RUNTIME_INFO(i915)->page_sizes = combination;
 
                for (single = 0; single <= 1; ++single) {
                        obj = fake_huge_pages_object(i915, combination, !!single);
@@ -485,7 +485,7 @@ static int igt_mock_exhaust_device_supported_pages(void *arg)
 out_put:
        i915_gem_object_put(obj);
 out_device:
-       mkwrite_device_info(i915)->page_sizes = saved_mask;
+       RUNTIME_INFO(i915)->page_sizes = saved_mask;
 
        return err;
 }
@@ -495,7 +495,7 @@ static int igt_mock_memory_region_huge_pages(void *arg)
        const unsigned int flags[] = { 0, I915_BO_ALLOC_CONTIGUOUS };
        struct i915_ppgtt *ppgtt = arg;
        struct drm_i915_private *i915 = ppgtt->vm.i915;
-       unsigned long supported = INTEL_INFO(i915)->page_sizes;
+       unsigned long supported = RUNTIME_INFO(i915)->page_sizes;
        struct intel_memory_region *mem;
        struct drm_i915_gem_object *obj;
        struct i915_vma *vma;
@@ -573,7 +573,7 @@ static int igt_mock_ppgtt_misaligned_dma(void *arg)
 {
        struct i915_ppgtt *ppgtt = arg;
        struct drm_i915_private *i915 = ppgtt->vm.i915;
-       unsigned long supported = INTEL_INFO(i915)->page_sizes;
+       unsigned long supported = RUNTIME_INFO(i915)->page_sizes;
        struct drm_i915_gem_object *obj;
        int bit;
        int err;
@@ -1390,7 +1390,7 @@ out_put:
 static int igt_ppgtt_sanity_check(void *arg)
 {
        struct drm_i915_private *i915 = arg;
-       unsigned int supported = INTEL_INFO(i915)->page_sizes;
+       unsigned int supported = RUNTIME_INFO(i915)->page_sizes;
        struct {
                igt_create_fn fn;
                unsigned int flags;
index 574cff3..7ac36e7 100644 (file)
@@ -1218,7 +1218,7 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
 
 #define HAS_PAGE_SIZES(dev_priv, sizes) ({ \
        GEM_BUG_ON((sizes) == 0); \
-       ((sizes) & ~INTEL_INFO(dev_priv)->page_sizes) == 0; \
+       ((sizes) & ~RUNTIME_INFO(dev_priv)->page_sizes) == 0; \
 })
 
 #define HAS_OVERLAY(dev_priv)           (INTEL_INFO(dev_priv)->display.has_overlay)
index 702e5b8..4b76051 100644 (file)
@@ -1091,8 +1091,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 
        /* We need to fallback to 4K pages if host doesn't support huge gtt. */
        if (intel_vgpu_active(dev_priv) && !intel_vgpu_has_huge_gtt(dev_priv))
-               mkwrite_device_info(dev_priv)->page_sizes =
-                       I915_GTT_PAGE_SIZE_4K;
+               RUNTIME_INFO(dev_priv)->page_sizes = I915_GTT_PAGE_SIZE_4K;
 
        ret = i915_gem_init_userptr(dev_priv);
        if (ret)
index 97e8ee4..e34a64a 100644 (file)
 /* Keep in gen based order, and chronological order within a gen */
 
 #define GEN_DEFAULT_PAGE_SIZES \
-       .page_sizes = I915_GTT_PAGE_SIZE_4K
+       .__runtime.page_sizes = I915_GTT_PAGE_SIZE_4K
 
 #define GEN_DEFAULT_REGIONS \
        .memory_regions = REGION_SMEM | REGION_STOLEN_SMEM
@@ -647,8 +647,8 @@ static const struct intel_device_info chv_info = {
 };
 
 #define GEN9_DEFAULT_PAGE_SIZES \
-       .page_sizes = I915_GTT_PAGE_SIZE_4K | \
-                     I915_GTT_PAGE_SIZE_64K
+       .__runtime.page_sizes = I915_GTT_PAGE_SIZE_4K | \
+               I915_GTT_PAGE_SIZE_64K
 
 #define GEN9_FEATURES \
        GEN8_FEATURES, \
@@ -802,9 +802,9 @@ static const struct intel_device_info cml_gt2_info = {
 };
 
 #define GEN11_DEFAULT_PAGE_SIZES \
-       .page_sizes = I915_GTT_PAGE_SIZE_4K | \
-                     I915_GTT_PAGE_SIZE_64K | \
-                     I915_GTT_PAGE_SIZE_2M
+       .__runtime.page_sizes = I915_GTT_PAGE_SIZE_4K | \
+               I915_GTT_PAGE_SIZE_64K |                \
+               I915_GTT_PAGE_SIZE_2M
 
 #define GEN11_FEATURES \
        GEN9_FEATURES, \
@@ -1001,9 +1001,9 @@ static const struct intel_device_info adl_p_info = {
 #undef GEN
 
 #define XE_HP_PAGE_SIZES \
-       .page_sizes = I915_GTT_PAGE_SIZE_4K | \
-                     I915_GTT_PAGE_SIZE_64K | \
-                     I915_GTT_PAGE_SIZE_2M
+       .__runtime.page_sizes = I915_GTT_PAGE_SIZE_4K | \
+               I915_GTT_PAGE_SIZE_64K |                \
+               I915_GTT_PAGE_SIZE_2M
 
 #define XE_HP_FEATURES \
        .__runtime.graphics.ver = 12, \
index e322742..ec9c8e9 100644 (file)
@@ -110,7 +110,7 @@ void intel_device_info_print(const struct intel_device_info *info,
 
        drm_printf(p, "gt: %d\n", info->gt);
        drm_printf(p, "memory-regions: %x\n", info->memory_regions);
-       drm_printf(p, "page-sizes: %x\n", info->page_sizes);
+       drm_printf(p, "page-sizes: %x\n", runtime->page_sizes);
        drm_printf(p, "platform: %s\n", intel_platform_name(info->platform));
        drm_printf(p, "ppgtt-size: %d\n", info->ppgtt_size);
        drm_printf(p, "ppgtt-type: %d\n", info->ppgtt_type);
index 24c6b48..97e45bb 100644 (file)
@@ -221,6 +221,8 @@ struct intel_runtime_info {
 
        struct intel_step_info step;
 
+       unsigned int page_sizes; /* page sizes supported by the HW */
+
        /* display */
        struct {
                u8 num_sprites[I915_MAX_PIPES];
@@ -242,8 +244,6 @@ struct intel_device_info {
        enum intel_ppgtt_type ppgtt_type;
        unsigned int ppgtt_size; /* log2, e.g. 31/32/48 bits */
 
-       unsigned int page_sizes; /* page sizes supported by the HW */
-
        u32 memory_regions; /* regions supported by the HW */
 
        u8 gt; /* GT number, 0 if undefined */
index 8645674..b23f11d 100644 (file)
@@ -174,7 +174,7 @@ struct drm_i915_private *mock_gem_device(void)
 
        RUNTIME_INFO(i915)->graphics.ver = -1;
 
-       mkwrite_device_info(i915)->page_sizes =
+       RUNTIME_INFO(i915)->page_sizes =
                I915_GTT_PAGE_SIZE_4K |
                I915_GTT_PAGE_SIZE_64K |
                I915_GTT_PAGE_SIZE_2M;