Commit 881c4117 authored by Dave Airlie's avatar Dave Airlie
Browse files
parent 8117713d
Loading
Loading
Loading
Loading
+8 −21
Original line number Diff line number Diff line
@@ -98,19 +98,11 @@ int qxl_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
/*
 * TTM backend functions.
 */
struct qxl_ttm_tt {
	struct ttm_tt		        ttm;
	struct qxl_device		*qdev;
	u64				offset;
};

static int qxl_ttm_backend_bind(struct ttm_bo_device *bdev,
				struct ttm_tt *ttm,
				struct ttm_resource *bo_mem)
{
	struct qxl_ttm_tt *gtt = (void *)ttm;

	gtt->offset = (unsigned long)(bo_mem->start << PAGE_SHIFT);
	if (!ttm->num_pages) {
		WARN(1, "nothing to bind %lu pages for mreg %p back %p!\n",
		     ttm->num_pages, bo_mem, ttm);
@@ -128,29 +120,24 @@ static void qxl_ttm_backend_unbind(struct ttm_bo_device *bdev,
static void qxl_ttm_backend_destroy(struct ttm_bo_device *bdev,
				    struct ttm_tt *ttm)
{
	struct qxl_ttm_tt *gtt = (void *)ttm;

	ttm_tt_destroy_common(bdev, ttm);
	ttm_tt_fini(&gtt->ttm);
	kfree(gtt);
	ttm_tt_fini(ttm);
	kfree(ttm);
}

static struct ttm_tt *qxl_ttm_tt_create(struct ttm_buffer_object *bo,
					uint32_t page_flags)
{
	struct qxl_device *qdev;
	struct qxl_ttm_tt *gtt;
	struct ttm_tt *ttm;

	qdev = qxl_get_qdev(bo->bdev);
	gtt = kzalloc(sizeof(struct qxl_ttm_tt), GFP_KERNEL);
	if (gtt == NULL)
	ttm = kzalloc(sizeof(struct ttm_tt), GFP_KERNEL);
	if (ttm == NULL)
		return NULL;
	gtt->qdev = qdev;
	if (ttm_tt_init(&gtt->ttm, bo, page_flags)) {
		kfree(gtt);
	if (ttm_tt_init(ttm, bo, page_flags)) {
		kfree(ttm);
		return NULL;
	}
	return &gtt->ttm;
	return ttm;
}

static int qxl_bo_move(struct ttm_buffer_object *bo, bool evict,