mirror of https://gitee.com/openkylin/linux.git
drm/amdgpu: move size calculations to the front of the file again
amdgpu_vm_bo_* functions should come much later. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
9a412063f0
commit
c460f8a6f5
|
@ -133,51 +133,6 @@ struct amdgpu_prt_cb {
|
|||
struct dma_fence_cb cb;
|
||||
};
|
||||
|
||||
/**
|
||||
* amdgpu_vm_bo_base_init - Adds bo to the list of bos associated with the vm
|
||||
*
|
||||
* @base: base structure for tracking BO usage in a VM
|
||||
* @vm: vm to which bo is to be added
|
||||
* @bo: amdgpu buffer object
|
||||
*
|
||||
* Initialize a bo_va_base structure and add it to the appropriate lists
|
||||
*
|
||||
*/
|
||||
static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base,
|
||||
struct amdgpu_vm *vm,
|
||||
struct amdgpu_bo *bo)
|
||||
{
|
||||
base->vm = vm;
|
||||
base->bo = bo;
|
||||
INIT_LIST_HEAD(&base->bo_list);
|
||||
INIT_LIST_HEAD(&base->vm_status);
|
||||
|
||||
if (!bo)
|
||||
return;
|
||||
list_add_tail(&base->bo_list, &bo->va);
|
||||
|
||||
if (bo->tbo.resv != vm->root.base.bo->tbo.resv)
|
||||
return;
|
||||
|
||||
vm->bulk_moveable = false;
|
||||
if (bo->tbo.type == ttm_bo_type_kernel)
|
||||
list_move(&base->vm_status, &vm->relocated);
|
||||
else
|
||||
list_move(&base->vm_status, &vm->idle);
|
||||
|
||||
if (bo->preferred_domains &
|
||||
amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type))
|
||||
return;
|
||||
|
||||
/*
|
||||
* we checked all the prerequisites, but it looks like this per vm bo
|
||||
* is currently evicted. add the bo to the evicted list to make sure it
|
||||
* is validated on next vm use to avoid fault.
|
||||
* */
|
||||
list_move_tail(&base->vm_status, &vm->evicted);
|
||||
base->moved = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* amdgpu_vm_level_shift - return the addr shift for each level
|
||||
*
|
||||
|
@ -249,6 +204,51 @@ static unsigned amdgpu_vm_bo_size(struct amdgpu_device *adev, unsigned level)
|
|||
return AMDGPU_GPU_PAGE_ALIGN(amdgpu_vm_num_entries(adev, level) * 8);
|
||||
}
|
||||
|
||||
/**
|
||||
* amdgpu_vm_bo_base_init - Adds bo to the list of bos associated with the vm
|
||||
*
|
||||
* @base: base structure for tracking BO usage in a VM
|
||||
* @vm: vm to which bo is to be added
|
||||
* @bo: amdgpu buffer object
|
||||
*
|
||||
* Initialize a bo_va_base structure and add it to the appropriate lists
|
||||
*
|
||||
*/
|
||||
static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base,
|
||||
struct amdgpu_vm *vm,
|
||||
struct amdgpu_bo *bo)
|
||||
{
|
||||
base->vm = vm;
|
||||
base->bo = bo;
|
||||
INIT_LIST_HEAD(&base->bo_list);
|
||||
INIT_LIST_HEAD(&base->vm_status);
|
||||
|
||||
if (!bo)
|
||||
return;
|
||||
list_add_tail(&base->bo_list, &bo->va);
|
||||
|
||||
if (bo->tbo.resv != vm->root.base.bo->tbo.resv)
|
||||
return;
|
||||
|
||||
vm->bulk_moveable = false;
|
||||
if (bo->tbo.type == ttm_bo_type_kernel)
|
||||
list_move(&base->vm_status, &vm->relocated);
|
||||
else
|
||||
list_move(&base->vm_status, &vm->idle);
|
||||
|
||||
if (bo->preferred_domains &
|
||||
amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type))
|
||||
return;
|
||||
|
||||
/*
|
||||
* we checked all the prerequisites, but it looks like this per vm bo
|
||||
* is currently evicted. add the bo to the evicted list to make sure it
|
||||
* is validated on next vm use to avoid fault.
|
||||
* */
|
||||
list_move_tail(&base->vm_status, &vm->evicted);
|
||||
base->moved = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* amdgpu_vm_get_pd_bo - add the VM PD to a validation list
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue