[PATCH 7/8] min

Matthew Auld matthew.auld at intel.com
Wed Jul 29 11:21:45 UTC 2020


---
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 9 +++++----
 drivers/gpu/drm/i915/gem/i915_gem_region.c       | 8 ++++++--
 drivers/gpu/drm/i915/gt/intel_gtt.c              | 3 ++-
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index d0847d7896f9..7a42c5ac53db 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -144,10 +144,11 @@ struct drm_i915_gem_object {
 	I915_SELFTEST_DECLARE(struct list_head st_link);
 
 	unsigned long flags;
-#define I915_BO_ALLOC_CONTIGUOUS BIT(0)
-#define I915_BO_ALLOC_VOLATILE   BIT(1)
-#define I915_BO_ALLOC_FLAGS (I915_BO_ALLOC_CONTIGUOUS | I915_BO_ALLOC_VOLATILE)
-#define I915_BO_READONLY         BIT(2)
+#define I915_BO_ALLOC_CONTIGUOUS		BIT(0)
+#define I915_BO_ALLOC_VOLATILE			BIT(1)
+#define I915_BO_ALLOC_IGNORE_MIN_PAGE_SIZE	BIT(2)
+#define I915_BO_ALLOC_FLAGS (I915_BO_ALLOC_CONTIGUOUS | I915_BO_ALLOC_VOLATILE | I915_BO_ALLOC_IGNORE_MIN_PAGE_SIZE)
+#define I915_BO_READONLY         BIT(3)
 
 	/*
 	 * Is the object to be mapped as read-only to the GPU
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_region.c b/drivers/gpu/drm/i915/gem/i915_gem_region.c
index 1515384d7e0e..2f46b87bd3fd 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_region.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_region.c
@@ -42,7 +42,10 @@ i915_gem_object_get_pages_buddy(struct drm_i915_gem_object *obj)
 		return -ENOMEM;
 	}
 
-	flags = I915_ALLOC_MIN_PAGE_SIZE;
+	flags = 0;
+	if (!(obj->flags & I915_BO_ALLOC_IGNORE_MIN_PAGE_SIZE))
+		flags |= I915_ALLOC_MIN_PAGE_SIZE;
+
 	if (obj->flags & I915_BO_ALLOC_CONTIGUOUS)
 		flags |= I915_ALLOC_CONTIGUOUS;
 
@@ -151,7 +154,8 @@ i915_gem_object_create_region(struct intel_memory_region *mem,
 	if (!mem)
 		return ERR_PTR(-ENODEV);
 
-	size = round_up(size, mem->min_page_size);
+	if (!(flags & I915_BO_ALLOC_IGNORE_MIN_PAGE_SIZE))
+		size = round_up(size, mem->min_page_size);
 
 	GEM_BUG_ON(!size);
 	GEM_BUG_ON(!IS_ALIGNED(size, I915_GTT_MIN_ALIGNMENT));
diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.c b/drivers/gpu/drm/i915/gt/intel_gtt.c
index ed3573bda55c..81c96b3b4d9e 100644
--- a/drivers/gpu/drm/i915/gt/intel_gtt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gtt.c
@@ -14,7 +14,8 @@
 
 struct drm_i915_gem_object *alloc_pt_lmem(struct i915_address_space *vm, int sz)
 {
-	return i915_gem_object_create_lmem(vm->i915, sz, 0);
+	return i915_gem_object_create_lmem(vm->i915, sz,
+					   I915_BO_ALLOC_IGNORE_MIN_PAGE_SIZE);
 }
 
 struct drm_i915_gem_object *alloc_pt_dma(struct i915_address_space *vm, int sz)
-- 
2.26.2



More information about the Intel-gfx-trybot mailing list