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

Commit d0cef9fa authored by Roger He's avatar Roger He Committed by Alex Deucher
Browse files

drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2)



forward the operation context to ttm_tt_populate as well,
and the ultimate goal is swapout enablement for reserved BOs.

v2: squash in fix for vboxvideo

Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarRoger He <Hongbo.He@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 9de2fb99
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -990,7 +990,8 @@ static struct ttm_tt *amdgpu_ttm_tt_create(struct ttm_bo_device *bdev,
	return &gtt->ttm.ttm;
}

static int amdgpu_ttm_tt_populate(struct ttm_tt *ttm)
static int amdgpu_ttm_tt_populate(struct ttm_tt *ttm,
			struct ttm_operation_ctx *ctx)
{
	struct amdgpu_device *adev = amdgpu_ttm_adev(ttm->bdev);
	struct amdgpu_ttm_tt *gtt = (void *)ttm;
@@ -1018,11 +1019,11 @@ static int amdgpu_ttm_tt_populate(struct ttm_tt *ttm)

#ifdef CONFIG_SWIOTLB
	if (swiotlb_nr_tbl()) {
		return ttm_dma_populate(&gtt->ttm, adev->dev);
		return ttm_dma_populate(&gtt->ttm, adev->dev, ctx);
	}
#endif

	return ttm_populate_and_map_pages(adev->dev, &gtt->ttm);
	return ttm_populate_and_map_pages(adev->dev, &gtt->ttm, ctx);
}

static void amdgpu_ttm_tt_unpopulate(struct ttm_tt *ttm)
+3 −2
Original line number Diff line number Diff line
@@ -216,9 +216,10 @@ static struct ttm_tt *ast_ttm_tt_create(struct ttm_bo_device *bdev,
	return tt;
}

static int ast_ttm_tt_populate(struct ttm_tt *ttm)
static int ast_ttm_tt_populate(struct ttm_tt *ttm,
			struct ttm_operation_ctx *ctx)
{
	return ttm_pool_populate(ttm);
	return ttm_pool_populate(ttm, ctx);
}

static void ast_ttm_tt_unpopulate(struct ttm_tt *ttm)
+3 −2
Original line number Diff line number Diff line
@@ -216,9 +216,10 @@ static struct ttm_tt *cirrus_ttm_tt_create(struct ttm_bo_device *bdev,
	return tt;
}

static int cirrus_ttm_tt_populate(struct ttm_tt *ttm)
static int cirrus_ttm_tt_populate(struct ttm_tt *ttm,
		struct ttm_operation_ctx *ctx)
{
	return ttm_pool_populate(ttm);
	return ttm_pool_populate(ttm, ctx);
}

static void cirrus_ttm_tt_unpopulate(struct ttm_tt *ttm)
+3 −2
Original line number Diff line number Diff line
@@ -223,9 +223,10 @@ static struct ttm_tt *hibmc_ttm_tt_create(struct ttm_bo_device *bdev,
	return tt;
}

static int hibmc_ttm_tt_populate(struct ttm_tt *ttm)
static int hibmc_ttm_tt_populate(struct ttm_tt *ttm,
		struct ttm_operation_ctx *ctx)
{
	return ttm_pool_populate(ttm);
	return ttm_pool_populate(ttm, ctx);
}

static void hibmc_ttm_tt_unpopulate(struct ttm_tt *ttm)
+3 −2
Original line number Diff line number Diff line
@@ -216,9 +216,10 @@ static struct ttm_tt *mgag200_ttm_tt_create(struct ttm_bo_device *bdev,
	return tt;
}

static int mgag200_ttm_tt_populate(struct ttm_tt *ttm)
static int mgag200_ttm_tt_populate(struct ttm_tt *ttm,
			struct ttm_operation_ctx *ctx)
{
	return ttm_pool_populate(ttm);
	return ttm_pool_populate(ttm, ctx);
}

static void mgag200_ttm_tt_unpopulate(struct ttm_tt *ttm)
Loading