[PATCH 04/45] drm/radeon/ttm: handle ttm moves properly
Christian König
christian.koenig at amd.com
Thu Sep 24 11:10:55 UTC 2020
Am 24.09.20 um 07:18 schrieb Dave Airlie:
> From: Dave Airlie <airlied at redhat.com>
>
> The core move code currently handles use_tt moves, for radeon
> this was being handled also in the driver, but not using the same
> paths.
>
> If moving between TT/SYSTEM (all the use_tt paths on radeon) use
> the core move function.
>
> Eventually the core will be flipped over to calling the driver.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/radeon/radeon_ttm.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
> index ea9ffa6198da..df5cedb2b632 100644
> --- a/drivers/gpu/drm/radeon/radeon_ttm.c
> +++ b/drivers/gpu/drm/radeon/radeon_ttm.c
> @@ -316,14 +316,16 @@ static int radeon_bo_move(struct ttm_buffer_object *bo, bool evict,
> ttm_bo_move_null(bo, new_mem);
> return 0;
> }
> - if ((old_mem->mem_type == TTM_PL_TT &&
> - new_mem->mem_type == TTM_PL_SYSTEM) ||
> - (old_mem->mem_type == TTM_PL_SYSTEM &&
> - new_mem->mem_type == TTM_PL_TT)) {
> - /* bind is enough */
> + if (old_mem->mem_type == TTM_PL_SYSTEM &&
> + new_mem->mem_type == TTM_PL_TT) {
> ttm_bo_move_null(bo, new_mem);
> return 0;
> }
> +
> + if (old_mem->mem_type == TTM_PL_TT &&
> + new_mem->mem_type == TTM_PL_SYSTEM)
> + return ttm_bo_move_ttm(bo, ctx, new_mem);
> +
> if (!rdev->ring[radeon_copy_ring_index(rdev)].ready ||
> rdev->asic->copy.copy == NULL) {
> /* use memcpy */
More information about the dri-devel
mailing list