[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