Lines Matching defs:bo_va

466 	struct radeon_bo_va *bo_va;
500 list_for_each_entry(bo_va, &vm->va, vm_list) {
501 bo_va->valid = false;
520 struct radeon_bo_va *bo_va;
529 list_for_each_entry(bo_va, &vm->va, vm_list) {
530 bo_va->valid = false;
756 * radeon_vm_bo_find - find the bo_va for a specific vm & bo
763 * Returns the found bo_va or NULL if none is found
770 struct radeon_bo_va *bo_va;
772 list_for_each_entry(bo_va, &bo->va, bo_list) {
773 if (bo_va->vm == vm) {
774 return bo_va;
789 * Returns newly added bo_va or NULL for failure
797 struct radeon_bo_va *bo_va;
799 bo_va = malloc(sizeof(struct radeon_bo_va),
801 if (bo_va == NULL) {
804 bo_va->vm = vm;
805 bo_va->bo = bo;
806 bo_va->soffset = 0;
807 bo_va->eoffset = 0;
808 bo_va->flags = 0;
809 bo_va->valid = false;
810 bo_va->ref_count = 1;
811 INIT_LIST_HEAD(&bo_va->bo_list);
812 INIT_LIST_HEAD(&bo_va->vm_list);
815 list_add(&bo_va->vm_list, &vm->va);
816 list_add_tail(&bo_va->bo_list, &bo->va);
819 return bo_va;
826 * @bo_va: bo_va to store the address
830 * Set offset of @bo_va (cayman+).
837 struct radeon_bo_va *bo_va,
841 uint64_t size = radeon_bo_size(bo_va->bo);
843 struct radeon_vm *vm = bo_va->vm;
870 if (bo_va == tmp) {
882 bo_va->bo, (unsigned)bo_va->soffset, tmp->bo,
891 bo_va->soffset = soffset;
892 bo_va->eoffset = eoffset;
893 bo_va->flags = flags;
894 bo_va->valid = false;
895 list_move(&bo_va->vm_list, head);
1098 struct radeon_bo_va *bo_va;
1107 bo_va = radeon_vm_bo_find(vm, bo);
1108 if (bo_va == NULL) {
1113 if (!bo_va->soffset) {
1119 if ((bo_va->valid && mem) || (!bo_va->valid && mem == NULL))
1122 bo_va->flags &= ~RADEON_VM_PAGE_VALID;
1123 bo_va->flags &= ~RADEON_VM_PAGE_SYSTEM;
1127 bo_va->flags |= RADEON_VM_PAGE_VALID;
1128 bo_va->valid = true;
1131 bo_va->flags |= RADEON_VM_PAGE_SYSTEM;
1137 bo_va->valid = false;
1187 r = radeon_vm_update_pdes(rdev, vm, bo_va->soffset, bo_va->eoffset);
1193 radeon_vm_update_ptes(rdev, vm, bo_va->soffset, bo_va->eoffset,
1194 addr, bo_va->flags);
1213 * @bo_va: requested bo_va
1215 * Remove @bo_va->bo from the requested vm (cayman+).
1216 * Remove @bo_va->bo from the list of bos associated with the bo_va->vm and
1217 * remove the ptes for @bo_va in the page table.
1223 struct radeon_bo_va *bo_va)
1228 sx_xlock(&bo_va->vm->mutex);
1229 r = radeon_vm_bo_update_pte(rdev, bo_va->vm, bo_va->bo, NULL);
1231 list_del(&bo_va->vm_list);
1232 sx_xunlock(&bo_va->vm->mutex);
1233 list_del(&bo_va->bo_list);
1235 free(bo_va, DRM_MEM_DRIVER);
1251 struct radeon_bo_va *bo_va;
1253 list_for_each_entry(bo_va, &bo->va, bo_list) {
1254 bo_va->valid = false;
1286 struct radeon_bo_va *bo_va, *tmp;
1297 list_for_each_entry_safe(bo_va, tmp, &vm->va, vm_list) {
1298 list_del_init(&bo_va->vm_list);
1299 r = radeon_bo_reserve(bo_va->bo, false);
1301 list_del_init(&bo_va->bo_list);
1302 radeon_bo_unreserve(bo_va->bo);
1303 free(bo_va, DRM_MEM_DRIVER);