Commit 13c2ceb6 authored by Matthew Auld's avatar Matthew Auld
Browse files

drm/i915/ttm: restore min_page_size behaviour



We now have bo->page_alignment which perfectly describes what we need if
we have min page size restrictions for lmem. We can also drop the flag
here, since this is the default behaviour for all objects.

v2(Thomas):
    - bo->page_alignment is in page units

Signed-off-by: default avatarMatthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210616152501.394518-7-matthew.auld@intel.com
parent d53ec322
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -672,9 +672,9 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem,
	 */
	obj->base.vma_node.driver_private = i915_gem_to_ttm(obj);
	ret = ttm_bo_init(&i915->bdev, i915_gem_to_ttm(obj), size,
			  bo_type, &i915_sys_placement, 1,
			  bo_type, &i915_sys_placement,
			  mem->min_page_size >> PAGE_SHIFT,
			  true, NULL, NULL, i915_ttm_bo_destroy);

	if (!ret)
		obj->ttm.created = true;

+1 −2
Original line number Diff line number Diff line
@@ -40,8 +40,7 @@ enum intel_region_id {
#define REGION_STOLEN_SMEM   BIT(INTEL_REGION_STOLEN_SMEM)
#define REGION_STOLEN_LMEM   BIT(INTEL_REGION_STOLEN_LMEM)

#define I915_ALLOC_MIN_PAGE_SIZE  BIT(0)
#define I915_ALLOC_CONTIGUOUS     BIT(1)
#define I915_ALLOC_CONTIGUOUS     BIT(0)

#define for_each_memory_region(mr, i915, id) \
	for (id = 0; id < ARRAY_SIZE((i915)->mm.regions); id++) \
+1 −1
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ intel_region_ttm_resource_alloc(struct intel_memory_region *mem,
	int ret;

	mock_bo.base.size = size;
	mock_bo.page_alignment = 1;
	mock_bo.page_alignment = mem->min_page_size >> PAGE_SHIFT;
	place.flags = flags;

	ret = man->func->alloc(man, &mock_bo, &place, &res);
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ static int mock_region_get_pages(struct drm_i915_gem_object *obj)
	struct sg_table *pages;
	int err;

	flags = I915_ALLOC_MIN_PAGE_SIZE;
	flags = 0;
	if (obj->flags & I915_BO_ALLOC_CONTIGUOUS)
		flags |= TTM_PL_FLAG_CONTIGUOUS;