|
@@ -315,7 +315,7 @@ nouveau_bo_pin(struct nouveau_bo *nvbo, uint32_t memtype)
|
|
|
|
|
|
nouveau_bo_placement_set(nvbo, memtype, 0);
|
|
|
|
|
|
- ret = nouveau_bo_validate(nvbo, false, false, false);
|
|
|
+ ret = nouveau_bo_validate(nvbo, false, false);
|
|
|
if (ret == 0) {
|
|
|
switch (bo->mem.mem_type) {
|
|
|
case TTM_PL_VRAM:
|
|
@@ -351,7 +351,7 @@ nouveau_bo_unpin(struct nouveau_bo *nvbo)
|
|
|
|
|
|
nouveau_bo_placement_set(nvbo, bo->mem.placement, 0);
|
|
|
|
|
|
- ret = nouveau_bo_validate(nvbo, false, false, false);
|
|
|
+ ret = nouveau_bo_validate(nvbo, false, false);
|
|
|
if (ret == 0) {
|
|
|
switch (bo->mem.mem_type) {
|
|
|
case TTM_PL_VRAM:
|
|
@@ -392,12 +392,12 @@ nouveau_bo_unmap(struct nouveau_bo *nvbo)
|
|
|
|
|
|
int
|
|
|
nouveau_bo_validate(struct nouveau_bo *nvbo, bool interruptible,
|
|
|
- bool no_wait_reserve, bool no_wait_gpu)
|
|
|
+ bool no_wait_gpu)
|
|
|
{
|
|
|
int ret;
|
|
|
|
|
|
- ret = ttm_bo_validate(&nvbo->bo, &nvbo->placement, interruptible,
|
|
|
- no_wait_reserve, no_wait_gpu);
|
|
|
+ ret = ttm_bo_validate(&nvbo->bo, &nvbo->placement,
|
|
|
+ interruptible, no_wait_gpu);
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
@@ -556,8 +556,7 @@ nouveau_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl)
|
|
|
static int
|
|
|
nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan,
|
|
|
struct nouveau_bo *nvbo, bool evict,
|
|
|
- bool no_wait_reserve, bool no_wait_gpu,
|
|
|
- struct ttm_mem_reg *new_mem)
|
|
|
+ bool no_wait_gpu, struct ttm_mem_reg *new_mem)
|
|
|
{
|
|
|
struct nouveau_fence *fence = NULL;
|
|
|
int ret;
|
|
@@ -567,7 +566,7 @@ nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan,
|
|
|
return ret;
|
|
|
|
|
|
ret = ttm_bo_move_accel_cleanup(&nvbo->bo, fence, evict,
|
|
|
- no_wait_reserve, no_wait_gpu, new_mem);
|
|
|
+ no_wait_gpu, new_mem);
|
|
|
nouveau_fence_unref(&fence);
|
|
|
return ret;
|
|
|
}
|
|
@@ -965,8 +964,7 @@ nouveau_vma_getmap(struct nouveau_channel *chan, struct nouveau_bo *nvbo,
|
|
|
|
|
|
static int
|
|
|
nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr,
|
|
|
- bool no_wait_reserve, bool no_wait_gpu,
|
|
|
- struct ttm_mem_reg *new_mem)
|
|
|
+ bool no_wait_gpu, struct ttm_mem_reg *new_mem)
|
|
|
{
|
|
|
struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
|
|
|
struct nouveau_channel *chan = chan = drm->channel;
|
|
@@ -995,7 +993,6 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr,
|
|
|
ret = drm->ttm.move(chan, bo, &bo->mem, new_mem);
|
|
|
if (ret == 0) {
|
|
|
ret = nouveau_bo_move_accel_cleanup(chan, nvbo, evict,
|
|
|
- no_wait_reserve,
|
|
|
no_wait_gpu, new_mem);
|
|
|
}
|
|
|
|
|
@@ -1064,8 +1061,7 @@ nouveau_bo_move_init(struct nouveau_drm *drm)
|
|
|
|
|
|
static int
|
|
|
nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool evict, bool intr,
|
|
|
- bool no_wait_reserve, bool no_wait_gpu,
|
|
|
- struct ttm_mem_reg *new_mem)
|
|
|
+ bool no_wait_gpu, struct ttm_mem_reg *new_mem)
|
|
|
{
|
|
|
u32 placement_memtype = TTM_PL_FLAG_TT | TTM_PL_MASK_CACHING;
|
|
|
struct ttm_placement placement;
|
|
@@ -1078,7 +1074,7 @@ nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool evict, bool intr,
|
|
|
|
|
|
tmp_mem = *new_mem;
|
|
|
tmp_mem.mm_node = NULL;
|
|
|
- ret = ttm_bo_mem_space(bo, &placement, &tmp_mem, intr, no_wait_reserve, no_wait_gpu);
|
|
|
+ ret = ttm_bo_mem_space(bo, &placement, &tmp_mem, intr, no_wait_gpu);
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
@@ -1086,11 +1082,11 @@ nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool evict, bool intr,
|
|
|
if (ret)
|
|
|
goto out;
|
|
|
|
|
|
- ret = nouveau_bo_move_m2mf(bo, true, intr, no_wait_reserve, no_wait_gpu, &tmp_mem);
|
|
|
+ ret = nouveau_bo_move_m2mf(bo, true, intr, no_wait_gpu, &tmp_mem);
|
|
|
if (ret)
|
|
|
goto out;
|
|
|
|
|
|
- ret = ttm_bo_move_ttm(bo, true, no_wait_reserve, no_wait_gpu, new_mem);
|
|
|
+ ret = ttm_bo_move_ttm(bo, true, no_wait_gpu, new_mem);
|
|
|
out:
|
|
|
ttm_bo_mem_put(bo, &tmp_mem);
|
|
|
return ret;
|
|
@@ -1098,8 +1094,7 @@ out:
|
|
|
|
|
|
static int
|
|
|
nouveau_bo_move_flips(struct ttm_buffer_object *bo, bool evict, bool intr,
|
|
|
- bool no_wait_reserve, bool no_wait_gpu,
|
|
|
- struct ttm_mem_reg *new_mem)
|
|
|
+ bool no_wait_gpu, struct ttm_mem_reg *new_mem)
|
|
|
{
|
|
|
u32 placement_memtype = TTM_PL_FLAG_TT | TTM_PL_MASK_CACHING;
|
|
|
struct ttm_placement placement;
|
|
@@ -1112,15 +1107,15 @@ nouveau_bo_move_flips(struct ttm_buffer_object *bo, bool evict, bool intr,
|
|
|
|
|
|
tmp_mem = *new_mem;
|
|
|
tmp_mem.mm_node = NULL;
|
|
|
- ret = ttm_bo_mem_space(bo, &placement, &tmp_mem, intr, no_wait_reserve, no_wait_gpu);
|
|
|
+ ret = ttm_bo_mem_space(bo, &placement, &tmp_mem, intr, no_wait_gpu);
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
- ret = ttm_bo_move_ttm(bo, true, no_wait_reserve, no_wait_gpu, &tmp_mem);
|
|
|
+ ret = ttm_bo_move_ttm(bo, true, no_wait_gpu, &tmp_mem);
|
|
|
if (ret)
|
|
|
goto out;
|
|
|
|
|
|
- ret = nouveau_bo_move_m2mf(bo, true, intr, no_wait_reserve, no_wait_gpu, new_mem);
|
|
|
+ ret = nouveau_bo_move_m2mf(bo, true, intr, no_wait_gpu, new_mem);
|
|
|
if (ret)
|
|
|
goto out;
|
|
|
|
|
@@ -1195,8 +1190,7 @@ nouveau_bo_vm_cleanup(struct ttm_buffer_object *bo,
|
|
|
|
|
|
static int
|
|
|
nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, bool intr,
|
|
|
- bool no_wait_reserve, bool no_wait_gpu,
|
|
|
- struct ttm_mem_reg *new_mem)
|
|
|
+ bool no_wait_gpu, struct ttm_mem_reg *new_mem)
|
|
|
{
|
|
|
struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
|
|
|
struct nouveau_bo *nvbo = nouveau_bo(bo);
|
|
@@ -1220,23 +1214,26 @@ nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, bool intr,
|
|
|
|
|
|
/* CPU copy if we have no accelerated method available */
|
|
|
if (!drm->ttm.move) {
|
|
|
- ret = ttm_bo_move_memcpy(bo, evict, no_wait_reserve, no_wait_gpu, new_mem);
|
|
|
+ ret = ttm_bo_move_memcpy(bo, evict, no_wait_gpu, new_mem);
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
/* Hardware assisted copy. */
|
|
|
if (new_mem->mem_type == TTM_PL_SYSTEM)
|
|
|
- ret = nouveau_bo_move_flipd(bo, evict, intr, no_wait_reserve, no_wait_gpu, new_mem);
|
|
|
+ ret = nouveau_bo_move_flipd(bo, evict, intr,
|
|
|
+ no_wait_gpu, new_mem);
|
|
|
else if (old_mem->mem_type == TTM_PL_SYSTEM)
|
|
|
- ret = nouveau_bo_move_flips(bo, evict, intr, no_wait_reserve, no_wait_gpu, new_mem);
|
|
|
+ ret = nouveau_bo_move_flips(bo, evict, intr,
|
|
|
+ no_wait_gpu, new_mem);
|
|
|
else
|
|
|
- ret = nouveau_bo_move_m2mf(bo, evict, intr, no_wait_reserve, no_wait_gpu, new_mem);
|
|
|
+ ret = nouveau_bo_move_m2mf(bo, evict, intr,
|
|
|
+ no_wait_gpu, new_mem);
|
|
|
|
|
|
if (!ret)
|
|
|
goto out;
|
|
|
|
|
|
/* Fallback to software copy. */
|
|
|
- ret = ttm_bo_move_memcpy(bo, evict, no_wait_reserve, no_wait_gpu, new_mem);
|
|
|
+ ret = ttm_bo_move_memcpy(bo, evict, no_wait_gpu, new_mem);
|
|
|
|
|
|
out:
|
|
|
if (nv_device(drm->device)->card_type < NV_50) {
|
|
@@ -1343,7 +1340,7 @@ nouveau_ttm_fault_reserve_notify(struct ttm_buffer_object *bo)
|
|
|
nvbo->placement.fpfn = 0;
|
|
|
nvbo->placement.lpfn = mappable;
|
|
|
nouveau_bo_placement_set(nvbo, TTM_PL_FLAG_VRAM, 0);
|
|
|
- return nouveau_bo_validate(nvbo, false, true, false);
|
|
|
+ return nouveau_bo_validate(nvbo, false, false);
|
|
|
}
|
|
|
|
|
|
static int
|