drm/ttm: handle the SYSTEM->TT path in same place as others.
This just consolidates the code making the flow easier to understand and also helps when moving move to the driver side. Reviewed-by: Christian König <christian.koenig@amd.com>. Signed-off-by: Dave Airlie <airlied@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200924051845.397177-3-airlied@gmail.com
This commit is contained in:
parent
b809979f11
commit
6236d953f7
1 changed files with 9 additions and 12 deletions
|
|
@ -265,24 +265,22 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
|
|||
if (ret)
|
||||
goto out_err;
|
||||
}
|
||||
|
||||
if (bo->mem.mem_type == TTM_PL_SYSTEM) {
|
||||
if (bdev->driver->move_notify)
|
||||
bdev->driver->move_notify(bo, evict, mem);
|
||||
bo->mem = *mem;
|
||||
goto moved;
|
||||
}
|
||||
}
|
||||
|
||||
if (bdev->driver->move_notify)
|
||||
bdev->driver->move_notify(bo, evict, mem);
|
||||
|
||||
if (old_man->use_tt && new_man->use_tt)
|
||||
ret = ttm_bo_move_ttm(bo, ctx, mem);
|
||||
else if (bdev->driver->move)
|
||||
if (old_man->use_tt && new_man->use_tt) {
|
||||
if (bo->mem.mem_type == TTM_PL_SYSTEM) {
|
||||
ttm_bo_assign_mem(bo, mem);
|
||||
ret = 0;
|
||||
} else
|
||||
ret = ttm_bo_move_ttm(bo, ctx, mem);
|
||||
} else if (bdev->driver->move) {
|
||||
ret = bdev->driver->move(bo, evict, ctx, mem);
|
||||
else
|
||||
} else {
|
||||
ret = ttm_bo_move_memcpy(bo, ctx, mem);
|
||||
}
|
||||
|
||||
if (ret) {
|
||||
if (bdev->driver->move_notify) {
|
||||
|
|
@ -294,7 +292,6 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
|
|||
goto out_err;
|
||||
}
|
||||
|
||||
moved:
|
||||
ctx->bytes_moved += bo->num_pages << PAGE_SHIFT;
|
||||
return 0;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue