Lines Matching refs:va
871 #define GPUVA_START(node) ((node)->va.addr)
872 #define GPUVA_LAST(node) ((node)->va.addr + (node)->va.range - 1)
882 struct drm_gpuva *va);
883 static void __drm_gpuva_remove(struct drm_gpuva *va);
914 u64 kstart = gpuvm->kernel_alloc_node.va.addr; in drm_gpuvm_in_kernel_node()
915 u64 krange = gpuvm->kernel_alloc_node.va.range; in drm_gpuvm_in_kernel_node()
1031 gpuvm->kernel_alloc_node.va.addr = reserve_offset; in drm_gpuvm_init()
1032 gpuvm->kernel_alloc_node.va.range = reserve_range; in drm_gpuvm_init()
1046 if (gpuvm->kernel_alloc_node.va.range) in drm_gpuvm_fini()
1216 struct drm_gpuva *va; in drm_gpuvm_prepare_range() local
1220 drm_gpuvm_for_each_va_range(va, gpuvm, addr, end) { in drm_gpuvm_prepare_range()
1221 struct drm_gem_object *obj = va->gem.obj; in drm_gpuvm_prepare_range()
1719 struct drm_gpuva *va) in __drm_gpuva_insert() argument
1725 GPUVA_START(va), in __drm_gpuva_insert()
1726 GPUVA_LAST(va))) in __drm_gpuva_insert()
1729 va->vm = gpuvm; in __drm_gpuva_insert()
1731 drm_gpuva_it_insert(va, &gpuvm->rb.tree); in __drm_gpuva_insert()
1733 node = rb_prev(&va->rb.node); in __drm_gpuva_insert()
1739 list_add(&va->rb.entry, head); in __drm_gpuva_insert()
1760 struct drm_gpuva *va) in drm_gpuva_insert() argument
1762 u64 addr = va->va.addr; in drm_gpuva_insert()
1763 u64 range = va->va.range; in drm_gpuva_insert()
1769 ret = __drm_gpuva_insert(gpuvm, va); in drm_gpuva_insert()
1783 __drm_gpuva_remove(struct drm_gpuva *va) in __drm_gpuva_remove() argument
1785 drm_gpuva_it_remove(va, &va->vm->rb.tree); in __drm_gpuva_remove()
1786 list_del_init(&va->rb.entry); in __drm_gpuva_remove()
1800 drm_gpuva_remove(struct drm_gpuva *va) in drm_gpuva_remove() argument
1802 struct drm_gpuvm *gpuvm = va->vm; in drm_gpuva_remove()
1804 if (unlikely(va == &gpuvm->kernel_alloc_node)) { in drm_gpuva_remove()
1810 __drm_gpuva_remove(va); in drm_gpuva_remove()
1811 drm_gpuvm_put(va->vm); in drm_gpuva_remove()
1831 drm_gpuva_link(struct drm_gpuva *va, struct drm_gpuvm_bo *vm_bo) in drm_gpuva_link() argument
1833 struct drm_gem_object *obj = va->gem.obj; in drm_gpuva_link()
1834 struct drm_gpuvm *gpuvm = va->vm; in drm_gpuva_link()
1841 va->vm_bo = drm_gpuvm_bo_get(vm_bo); in drm_gpuva_link()
1844 list_add_tail(&va->gem.entry, &vm_bo->list.gpuva); in drm_gpuva_link()
1867 drm_gpuva_unlink(struct drm_gpuva *va) in drm_gpuva_unlink() argument
1869 struct drm_gem_object *obj = va->gem.obj; in drm_gpuva_unlink()
1870 struct drm_gpuvm_bo *vm_bo = va->vm_bo; in drm_gpuva_unlink()
1876 list_del_init(&va->gem.entry); in drm_gpuva_unlink()
1878 va->vm_bo = NULL; in drm_gpuva_unlink()
1913 struct drm_gpuva *va; in drm_gpuva_find() local
1915 va = drm_gpuva_find_first(gpuvm, addr, range); in drm_gpuva_find()
1916 if (!va) in drm_gpuva_find()
1919 if (va->va.addr != addr || in drm_gpuva_find()
1920 va->va.range != range) in drm_gpuva_find()
1923 return va; in drm_gpuva_find()
2001 struct drm_gpuva *va, in drm_gpuva_map() argument
2004 drm_gpuva_init_from_op(va, op); in drm_gpuva_map()
2005 drm_gpuva_insert(gpuvm, va); in drm_gpuva_map()
2024 struct drm_gpuva *va = op->unmap->va; in drm_gpuva_remap() local
2025 struct drm_gpuvm *gpuvm = va->vm; in drm_gpuva_remap()
2027 drm_gpuva_remove(va); in drm_gpuva_remap()
2051 drm_gpuva_remove(op->va); in drm_gpuva_unmap()
2063 op.map.va.addr = addr; in op_map_cb()
2064 op.map.va.range = range; in op_map_cb()
2091 struct drm_gpuva *va, bool merge) in op_unmap_cb() argument
2096 op.unmap.va = va; in op_unmap_cb()
2108 struct drm_gpuva *va, *next; in __drm_gpuvm_sm_map() local
2115 drm_gpuvm_for_each_va_range_safe(va, next, gpuvm, req_addr, req_end) { in __drm_gpuvm_sm_map()
2116 struct drm_gem_object *obj = va->gem.obj; in __drm_gpuvm_sm_map()
2117 u64 offset = va->gem.offset; in __drm_gpuvm_sm_map()
2118 u64 addr = va->va.addr; in __drm_gpuvm_sm_map()
2119 u64 range = va->va.range; in __drm_gpuvm_sm_map()
2121 bool merge = !!va->gem.obj; in __drm_gpuvm_sm_map()
2128 ret = op_unmap_cb(ops, priv, va, merge); in __drm_gpuvm_sm_map()
2135 ret = op_unmap_cb(ops, priv, va, merge); in __drm_gpuvm_sm_map()
2143 .va.addr = req_end, in __drm_gpuvm_sm_map()
2144 .va.range = range - req_range, in __drm_gpuvm_sm_map()
2149 .va = va, in __drm_gpuvm_sm_map()
2161 .va.addr = addr, in __drm_gpuvm_sm_map()
2162 .va.range = ls_range, in __drm_gpuvm_sm_map()
2166 struct drm_gpuva_op_unmap u = { .va = va }; in __drm_gpuvm_sm_map()
2188 .va.addr = req_end, in __drm_gpuvm_sm_map()
2189 .va.range = end - req_end, in __drm_gpuvm_sm_map()
2206 ret = op_unmap_cb(ops, priv, va, merge); in __drm_gpuvm_sm_map()
2213 ret = op_unmap_cb(ops, priv, va, merge); in __drm_gpuvm_sm_map()
2221 .va.addr = req_end, in __drm_gpuvm_sm_map()
2222 .va.range = end - req_end, in __drm_gpuvm_sm_map()
2227 .va = va, in __drm_gpuvm_sm_map()
2249 struct drm_gpuva *va, *next; in __drm_gpuvm_sm_unmap() local
2256 drm_gpuvm_for_each_va_range_safe(va, next, gpuvm, req_addr, req_end) { in __drm_gpuvm_sm_unmap()
2259 struct drm_gem_object *obj = va->gem.obj; in __drm_gpuvm_sm_unmap()
2260 u64 offset = va->gem.offset; in __drm_gpuvm_sm_unmap()
2261 u64 addr = va->va.addr; in __drm_gpuvm_sm_unmap()
2262 u64 range = va->va.range; in __drm_gpuvm_sm_unmap()
2266 prev.va.addr = addr; in __drm_gpuvm_sm_unmap()
2267 prev.va.range = req_addr - addr; in __drm_gpuvm_sm_unmap()
2275 next.va.addr = req_end; in __drm_gpuvm_sm_unmap()
2276 next.va.range = end - req_end; in __drm_gpuvm_sm_unmap()
2284 struct drm_gpuva_op_unmap unmap = { .va = va }; in __drm_gpuvm_sm_unmap()
2293 ret = op_unmap_cb(ops, priv, va, false); in __drm_gpuvm_sm_unmap()
2401 if (op->remap.unmap->va->gem.obj) in drm_gpuva_sm_step_lock()
2402 return drm_exec_lock_obj(exec, op->remap.unmap->va->gem.obj); in drm_gpuva_sm_step_lock()
2405 if (op->unmap.va->gem.obj) in drm_gpuva_sm_step_lock()
2406 return drm_exec_lock_obj(exec, op->unmap.va->gem.obj); in drm_gpuva_sm_step_lock()
2764 struct drm_gpuva *va; in drm_gpuvm_prefetch_ops_create() local
2774 drm_gpuvm_for_each_va_range(va, gpuvm, addr, end) { in drm_gpuvm_prefetch_ops_create()
2782 op->prefetch.va = va; in drm_gpuvm_prefetch_ops_create()
2817 struct drm_gpuva *va; in drm_gpuvm_bo_unmap_ops_create() local
2828 drm_gpuvm_bo_for_each_va(va, vm_bo) { in drm_gpuvm_bo_unmap_ops_create()
2836 op->unmap.va = va; in drm_gpuvm_bo_unmap_ops_create()