Home
last modified time | relevance | path

Searched refs:userptr (Results 1 – 25 of 54) sorted by relevance

123

/linux-6.15/drivers/gpu/drm/xe/
H A Dxe_hmm.c136 struct xe_userptr *userptr = &uvma->userptr; in xe_hmm_userptr_set_mapped() local
144 userptr->mapped = true; in xe_hmm_userptr_set_mapped()
150 struct xe_userptr *userptr = &uvma->userptr; in xe_hmm_userptr_unmap() local
166 if (userptr->sg && userptr->mapped) in xe_hmm_userptr_unmap()
169 userptr->mapped = false; in xe_hmm_userptr_unmap()
183 struct xe_userptr *userptr = &uvma->userptr; in xe_hmm_userptr_free_sg() local
188 userptr->sg = NULL; in xe_hmm_userptr_free_sg()
238 userptr = &uvma->userptr; in xe_hmm_userptr_populate_range()
250 if (userptr->sg) in xe_hmm_userptr_populate_range()
293 ret = xe_alloc_sg(vm->xe, &userptr->sgt, &hmm_range, &vm->userptr.notifier_lock); in xe_hmm_userptr_populate_range()
[all …]
H A Dxe_vm.c65 uvma->userptr.notifier_seq) ? in xe_vma_userptr_check_repin()
266 up_read(&vm->userptr.notifier_lock); in xe_vm_add_compute_exec_queue()
588 struct xe_userptr *userptr = &uvma->userptr; in __vma_userptr_invalidate() local
686 uvma->userptr.notifier_seq -= 2; in xe_vma_userptr_force_invalidate()
703 userptr.invalidate_link) { in xe_vm_userptr_pin()
706 &vm->userptr.repin_list); in xe_vm_userptr_pin()
712 userptr.repin_link) { in xe_vm_userptr_pin()
753 userptr.repin_link) { in xe_vm_userptr_pin()
1218 struct xe_userptr *userptr = &to_userptr_vma(vma)->userptr; in xe_vma_create() local
1256 struct xe_userptr *userptr = &uvma->userptr; in xe_vma_destroy_late() local
[all …]
H A Dxe_pt.c730 xe_res_first_sg(to_userptr_vma(vma)->userptr.sg, 0, in xe_pt_stage_bind()
1313 u32 divisor = uvma->userptr.divisor ? uvma->userptr.divisor : 2; in xe_pt_userptr_inject_eagain()
1317 uvma->userptr.divisor = divisor << 1; in xe_pt_userptr_inject_eagain()
1339 lockdep_assert_held_read(&vm->userptr.notifier_lock); in vma_check_userptr()
1348 notifier_seq = uvma->userptr.notifier_seq; in vma_check_userptr()
1410 down_read(&vm->userptr.notifier_lock); in xe_pt_userptr_pre_commit()
1415 up_read(&vm->userptr.notifier_lock); in xe_pt_userptr_pre_commit()
2137 to_userptr_vma(vma)->userptr.initial_bind = true; in bind_op_commit()
2174 spin_lock(&vm->userptr.invalidated_lock); in unbind_op_commit()
2176 spin_unlock(&vm->userptr.invalidated_lock); in unbind_op_commit()
[all …]
H A Dxe_vm_types.h140 struct xe_userptr userptr; member
266 } userptr; member
H A DKconfig.debug101 bool "Inject userptr invalidation -EINVAL errors"
105 are hit during checks for userptr invalidations.
H A Dxe_exec.c297 err = down_read_interruptible(&vm->userptr.notifier_lock); in xe_exec_ioctl()
339 up_read(&vm->userptr.notifier_lock); in xe_exec_ioctl()
/linux-6.15/drivers/gpu/drm/i915/gem/
H A Di915_gem_userptr.c85 if (!--obj->userptr.page_ref) { in i915_gem_object_userptr_drop_ref()
86 pvec = obj->userptr.pvec; in i915_gem_object_userptr_drop_ref()
87 obj->userptr.pvec = NULL; in i915_gem_object_userptr_drop_ref()
115 if (!obj->userptr.page_ref) { in i915_gem_userptr_get_pages()
120 obj->userptr.page_ref++; in i915_gem_userptr_get_pages()
121 pvec = obj->userptr.pvec; in i915_gem_userptr_get_pages()
250 if (notifier_seq == obj->userptr.notifier_seq && obj->userptr.pvec) { in i915_gem_object_userptr_submit_init()
284 obj->userptr.notifier_seq)) { in i915_gem_object_userptr_submit_init()
290 obj->userptr.pvec = pvec; in i915_gem_object_userptr_submit_init()
296 obj->userptr.page_ref--; in i915_gem_object_userptr_submit_init()
[all …]
/linux-6.15/drivers/accel/habanalabs/common/
H A Dmemory.c231 userptr = kzalloc(sizeof(*userptr), GFP_KERNEL); in dma_map_host_va()
232 if (!userptr) { in dma_map_host_va()
245 *p_userptr = userptr; in dma_map_host_va()
258 kfree(userptr); in dma_map_host_va()
277 kfree(userptr); in dma_unmap_host_va()
2402 userptr->sgt = kzalloc(sizeof(*userptr->sgt), GFP_KERNEL); in hl_pin_host_memory()
2403 if (!userptr->sgt) in hl_pin_host_memory()
2417 userptr); in hl_pin_host_memory()
2448 hl_dma_unmap_sgtable(hdev, userptr->sgt, userptr->dir); in hl_unpin_host_memory()
2475 kfree(userptr); in hl_userptr_delete_list()
[all …]
H A Ddebugfs.c207 struct hl_userptr *userptr; in userptr_show() local
222 userptr->pid, userptr->addr, userptr->size, in userptr_show()
223 dma_dir[userptr->dir]); in userptr_show()
242 struct hl_userptr *userptr; in vm_show() local
267 userptr = hnode->ptr; in vm_show()
354 struct hl_userptr *userptr; in userptr_lookup_show() local
364 dev_entry->userptr_lookup < userptr->addr + userptr->size) { in userptr_lookup_show()
370 sg_end = userptr->addr + in userptr_lookup_show()
386 userptr->addr, userptr->size); in userptr_lookup_show()
689 struct hl_userptr *userptr; in device_va_to_pa() local
[all …]
/linux-6.15/Documentation/gpu/
H A Ddrm-vm-bind-locking.rst8 including the userptr mmu_notifier locking. It also discusses some
19 in this document. In particular, it is currently lacking a userptr
39 * ``userptr gpu_vma or just userptr``: A gpu_vma, whose backing store
86 userptr gpu_vma on the gpu_vm's userptr list, and in write mode during mmu
103 invalidation. The userptr notifier lock is per gpu_vm.
384 userptr gpu_vmas
429 // invalidated userptr gpu_vmas present, to avoid concurrent userptr
430 // revalidations of the same userptr gpu_vma.
474 userptr gpu_vmas, although we only show a single one here.
508 Efficient userptr gpu_vma exec_function iteration
[all …]
/linux-6.15/drivers/gpu/drm/radeon/
H A Dradeon_ttm.c316 uint64_t userptr; member
340 unsigned long end = gtt->userptr + (u64)ttm->num_pages * PAGE_SIZE; in radeon_ttm_tt_pin_userptr()
342 vma = find_vma(gtt->usermm, gtt->userptr); in radeon_ttm_tt_pin_userptr()
349 uint64_t userptr = gtt->userptr + pinned * PAGE_SIZE; in radeon_ttm_tt_pin_userptr() local
352 r = get_user_pages(userptr, num_pages, write ? FOLL_WRITE : 0, in radeon_ttm_tt_pin_userptr()
433 if (gtt->userptr) { in radeon_ttm_backend_bind()
461 if (gtt->userptr) in radeon_ttm_backend_unbind()
535 if (gtt && gtt->userptr) { in radeon_ttm_tt_populate()
561 if (gtt && gtt->userptr) { in radeon_ttm_tt_unpopulate()
582 gtt->userptr = addr; in radeon_ttm_tt_set_userptr()
[all …]
H A DKconfig39 bool "Always enable userptr support"
44 selected to enabled full userptr support.
/linux-6.15/drivers/media/v4l2-core/
H A Dv4l2-compat-ioctl32.c272 compat_long_t userptr; member
300 compat_long_t userptr; member
324 compat_long_t userptr; member
350 m.userptr = (unsigned long)compat_ptr(plane32.m.userptr); in get_v4l2_plane32()
387 plane32.m.userptr = (uintptr_t)(p64->m.userptr); in put_v4l2_plane32()
431 vb->m.userptr = (unsigned long)compat_ptr(vb32.m.userptr); in get_v4l2_buffer32()
475 vb->m.userptr = (unsigned long)compat_ptr(vb32.m.userptr); in get_v4l2_buffer32_time32()
518 vb32.m.userptr = (uintptr_t)(vb->m.userptr); in put_v4l2_buffer32()
562 vb32.m.userptr = (uintptr_t)(vb->m.userptr); in put_v4l2_buffer32_time32()
/linux-6.15/drivers/accel/amdxdna/
H A Damdxdna_gem.c42 mem->userptr = abo->dev_heap->mem.userptr + offset; in amdxdna_gem_insert_node_locked()
102 abo->mem.userptr, abo->mem.size, abo->type); in amdxdna_hmm_invalidate()
156 abo->mem.userptr = addr; in amdxdna_hmm_register()
239 abo->mem.userptr = AMDXDNA_INVALID_ADDR; in amdxdna_gem_create_obj()
350 if (heap->mem.userptr == AMDXDNA_INVALID_ADDR) { in amdxdna_drm_alloc_dev_bo()
473 args->handle, args->type, abo->mem.userptr, in amdxdna_drm_create_bo_ioctl()
565 args->vaddr = abo->mem.userptr; in amdxdna_drm_get_bo_info_ioctl()
H A Damdxdna_gem.h10 u64 userptr; member
H A Daie2_ctx.c69 heap->mem.userptr, heap->mem.size); in aie2_hwctx_restart()
613 heap->mem.userptr, heap->mem.size); in aie2_hwctx_init()
767 abo->mem.userptr, abo->mem.size); in aie2_populate_range()
769 range.start = abo->mem.userptr; in aie2_populate_range()
770 range.end = abo->mem.userptr + abo->mem.size; in aie2_populate_range()
/linux-6.15/drivers/gpu/drm/etnaviv/
H A Detnaviv_gem.c668 struct etnaviv_gem_userptr *userptr = &etnaviv_obj->userptr; in etnaviv_gem_userptr_get_pages() local
674 if (userptr->mm != current->mm) in etnaviv_gem_userptr_get_pages()
681 if (!userptr->ro) in etnaviv_gem_userptr_get_pages()
686 uint64_t ptr = userptr->ptr + pinned * PAGE_SIZE; in etnaviv_gem_userptr_get_pages()
746 etnaviv_obj->userptr.ptr = ptr; in etnaviv_gem_new_userptr()
747 etnaviv_obj->userptr.mm = current->mm; in etnaviv_gem_new_userptr()
748 etnaviv_obj->userptr.ro = !(flags & ETNA_USERPTR_WRITE); in etnaviv_gem_new_userptr()
H A Detnaviv_gem.h58 struct etnaviv_gem_userptr userptr; member
/linux-6.15/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_ttm.c680 uint64_t userptr; member
771 gtt->userptr, ttm->num_pages); in amdgpu_ttm_tt_get_user_pages_done()
934 if (gtt->userptr) { in amdgpu_ttm_backend_bind()
1061 if (gtt->userptr) { in amdgpu_ttm_backend_unbind()
1150 if (gtt->userptr) { in amdgpu_ttm_tt_populate()
1190 if (gtt->userptr) { in amdgpu_ttm_tt_unpopulate()
1229 *user_addr = gtt->userptr; in amdgpu_ttm_tt_get_userptr()
1261 gtt->userptr = addr; in amdgpu_ttm_tt_set_userptr()
1306 if (gtt->userptr > end || gtt->userptr + size <= start) in amdgpu_ttm_tt_affect_userptr()
1309 if (userptr) in amdgpu_ttm_tt_affect_userptr()
[all …]
H A DKconfig69 bool "Always enable userptr write support"
76 isn't already selected to enabled full userptr support.
/linux-6.15/drivers/gpu/drm/exynos/
H A Dexynos_drm_g2d.c207 unsigned long userptr; member
415 unsigned long userptr, in g2d_userptr_get_dma_addr() argument
434 if (g2d_userptr->userptr == userptr) { in g2d_userptr_get_dma_addr()
468 start = userptr & PAGE_MASK; in g2d_userptr_get_dma_addr()
469 offset = userptr & ~PAGE_MASK; in g2d_userptr_get_dma_addr()
470 end = PAGE_ALIGN(userptr + size); in g2d_userptr_get_dma_addr()
517 g2d_userptr->userptr = userptr; in g2d_userptr_get_dma_addr()
747 g2d_userptr.userptr, in g2d_map_cmdlist_gem()
/linux-6.15/drivers/gpu/drm/msm/
H A Dmsm_gem_submit.c126 void __user *userptr = in submit_lookup_objects() local
134 if (copy_from_user(&submit_bo, userptr, sizeof(submit_bo))) { in submit_lookup_objects()
191 void __user *userptr = in submit_lookup_cmds() local
194 ret = copy_from_user(&submit_cmd, userptr, sizeof(submit_cmd)); in submit_lookup_cmds()
222 userptr = u64_to_user_ptr(submit_cmd.relocs); in submit_lookup_cmds()
236 ret = copy_from_user(submit->cmd[i].relocs, userptr, sz); in submit_lookup_cmds()
/linux-6.15/drivers/media/common/videobuf2/
H A Dvideobuf2-v4l2.c210 planes[plane].m.userptr = in vb2_fill_vb2_v4l2_buffer()
211 b->m.planes[plane].m.userptr; in vb2_fill_vb2_v4l2_buffer()
284 planes[0].m.userptr = b->m.userptr; in vb2_fill_vb2_v4l2_buffer()
515 pdst->m.userptr = psrc->m.userptr; in __fill_v4l2_buffer()
531 b->m.userptr = vb->planes[0].m.userptr; in __fill_v4l2_buffer()
/linux-6.15/drivers/gpu/drm/nouveau/
H A Dnouveau_drv.h191 void __user *userptr = u64_to_user_ptr(user); in u_memcpya() local
196 return vmemdup_user(userptr, bytes); in u_memcpya()
/linux-6.15/Documentation/userspace-api/media/v4l/
H A Dvidioc-prepare-buf.rst55 bounds, or no buffers have been allocated yet, or the ``userptr`` or

123