]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915/selftests: tweak the misaligned_case
authorMatthew Auld <matthew.auld@intel.com>
Wed, 20 Apr 2022 18:16:13 +0000 (19:16 +0100)
committerMatthew Auld <matthew.auld@intel.com>
Thu, 21 Apr 2022 09:11:09 +0000 (10:11 +0100)
The compact-pt layout restrictions should only apply to the ppGTT. Also
make this play nice on platforms that only have the 64K GTT restriction,
and not the compact-pt thing.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Nirmoy Das <nirmoy.das@linux.intel.com>
Cc: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@linux.intel.com>
Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220420181613.70033-4-matthew.auld@intel.com
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c

index bccc49a8ab5e3bbfbb9b4078bde946c39b43d3be..8633bec18fa75e1efb16407b181a7767234c2b7f 100644 (file)
@@ -1112,10 +1112,16 @@ static int misaligned_case(struct i915_address_space *vm, struct intel_memory_re
        expected_vma_size = round_up(size, 1 << (ffs(vma->resource->page_sizes_gtt) - 1));
        expected_node_size = expected_vma_size;
 
-       if (NEEDS_COMPACT_PT(vm->i915) && i915_gem_object_is_lmem(obj)) {
-               /* compact-pt should expand lmem node to 2MB */
+       if (HAS_64K_PAGES(vm->i915) && i915_gem_object_is_lmem(obj)) {
+               /*
+                * The compact-pt should expand lmem node to 2MB for the ppGTT,
+                * for all other cases we should only expect 64K.
+                */
                expected_vma_size = round_up(size, I915_GTT_PAGE_SIZE_64K);
-               expected_node_size = round_up(size, I915_GTT_PAGE_SIZE_2M);
+               if (NEEDS_COMPACT_PT(vm->i915) && !i915_is_ggtt(vm))
+                       expected_node_size = round_up(size, I915_GTT_PAGE_SIZE_2M);
+               else
+                       expected_node_size = round_up(size, I915_GTT_PAGE_SIZE_64K);
        }
 
        if (vma->size != expected_vma_size || vma->node.size != expected_node_size) {