Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21590d3f authored by Alistair Delva's avatar Alistair Delva
Browse files

ANDROID: drm: ttm: Add ttm_tt_create2 driver hook



Implements the equivalent of dde5da23
without requiring all drivers to be updated.

Bug: 152417756
Signed-off-by: default avatarAlistair Delva <adelva@google.com>
Change-Id: Icb33fb848d6056736e2dcad45146ec7b539f8a76
parent ffd01edc
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -245,12 +245,20 @@ static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
		if (zero_alloc)
			page_flags |= TTM_PAGE_FLAG_ZERO_ALLOC;
	case ttm_bo_type_kernel:
		if (bdev->driver->ttm_tt_create2)
			bo->ttm = bdev->driver->ttm_tt_create2(bo, page_flags,
							       glob->dummy_read_page);
		else
			bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
							      page_flags, glob->dummy_read_page);
		if (unlikely(bo->ttm == NULL))
			ret = -ENOMEM;
		break;
	case ttm_bo_type_sg:
		if (bdev->driver->ttm_tt_create2)
			bo->ttm = bdev->driver->ttm_tt_create2(bo, page_flags | TTM_PAGE_FLAG_SG,
							       glob->dummy_read_page);
		else
			bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
							      page_flags | TTM_PAGE_FLAG_SG,
							      glob->dummy_read_page);
+16 −0
Original line number Diff line number Diff line
@@ -343,6 +343,22 @@ struct ttm_bo_driver {
					uint32_t page_flags,
					struct page *dummy_read_page);

	/**
	 * ttm_tt_create2
	 *
	 * @bo: pointer to a struct ttm_buffer_object
	 * @page_flags: Page flags as identified by TTM_PAGE_FLAG_XX flags.
	 * @dummy_read_page: See struct ttm_bo_device.
	 *
	 * Create a struct ttm_tt to back data with system memory pages.
	 * No pages are actually allocated.
	 * Returns:
	 * NULL: Out of memory.
	 */
	struct ttm_tt *(*ttm_tt_create2)(struct ttm_buffer_object *bo,
					 uint32_t page_flags,
					 struct page *dummy_read_page);

	/**
	 * ttm_tt_populate
	 *