Home
last modified time | relevance | path

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

12

/linux/drivers/gpu/drm/i915/gem/
H A Di915_gem_userptr.c75 return mmu_interval_notifier_insert(&obj->userptr.notifier, current->mm, in i915_gem_userptr_init__mmu_notifier()
76 obj->userptr.ptr, obj->base.size, in i915_gem_userptr_init__mmu_notifier()
86 if (!--obj->userptr.page_ref) { in i915_gem_object_userptr_drop_ref()
87 pvec = obj->userptr.pvec; in i915_gem_object_userptr_drop_ref()
88 obj->userptr.pvec = NULL; in i915_gem_object_userptr_drop_ref()
90 GEM_BUG_ON(obj->userptr.page_ref < 0); in i915_gem_object_userptr_drop_ref()
116 if (!obj->userptr.page_ref) { in i915_gem_userptr_get_pages()
121 obj->userptr.page_ref++; in i915_gem_userptr_get_pages()
122 pvec = obj->userptr.pvec; in i915_gem_userptr_get_pages()
242 if (obj->userptr.notifier.mm != current->mm) in i915_gem_object_userptr_submit_init()
[all …]
/linux/drivers/accel/habanalabs/common/
H A Dmemory.c228 struct hl_userptr *userptr; in dma_map_host_va() local
231 userptr = kzalloc_obj(*userptr); in dma_map_host_va()
232 if (!userptr) { in dma_map_host_va()
237 rc = hl_pin_host_memory(hdev, addr, size, userptr); in dma_map_host_va()
241 userptr->dma_mapped = true; in dma_map_host_va()
242 userptr->dir = DMA_BIDIRECTIONAL; in dma_map_host_va()
243 userptr->vm_type = VM_TYPE_USERPTR; in dma_map_host_va()
245 *p_userptr = userptr; in dma_map_host_va()
247 rc = hl_dma_map_sgtable(hdev, userptr->sgt, DMA_BIDIRECTIONAL); in dma_map_host_va()
256 hl_unpin_host_memory(hdev, userptr); in dma_map_host_va()
[all …]
H A Ddebugfs.c208 struct hl_userptr *userptr; in userptr_show() local
215 list_for_each_entry(userptr, &dev_entry->userptr_list, debugfs_list) { in userptr_show()
223 userptr->pid, userptr->addr, userptr->size, in userptr_show()
224 dma_dir[userptr->dir]); in userptr_show()
243 struct hl_userptr *userptr; in vm_show() local
268 userptr = hnode->ptr; in vm_show()
271 hnode->vaddr, userptr->size); in vm_show()
355 struct hl_userptr *userptr; in userptr_lookup_show() local
363 list_for_each_entry(userptr, &dev_entry->userptr_list, debugfs_list) { in userptr_lookup_show()
364 if (dev_entry->userptr_lookup >= userptr->addr && in userptr_lookup_show()
[all …]
/linux/Documentation/gpu/
H A Ddrm-vm-bind-locking.rst8 including the userptr mmu_notifier locking. It also discusses some
9 optimizations to get rid of the looping through of all userptr mappings and
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
81 gpu_vm's list of userptr gpu_vmas. With a CPU mm analogy this would
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.
193 might be userptr gpu_vmas that are not mapping a buffer object that
384 userptr gpu_vmas
387 A userptr gpu_vma is a gpu_vma that, instead of mapping a buffer object to a
[all …]
/linux/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/drivers/gpu/drm/etnaviv/
H A Detnaviv_gem.c669 struct etnaviv_gem_userptr *userptr = &etnaviv_obj->userptr; in etnaviv_gem_userptr_get_pages() local
675 if (userptr->mm != current->mm) in etnaviv_gem_userptr_get_pages()
682 if (!userptr->ro) in etnaviv_gem_userptr_get_pages()
687 uint64_t ptr = userptr->ptr + pinned * PAGE_SIZE; in etnaviv_gem_userptr_get_pages()
747 etnaviv_obj->userptr.ptr = ptr; in etnaviv_gem_new_userptr()
748 etnaviv_obj->userptr.mm = current->mm; in etnaviv_gem_new_userptr()
749 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/drivers/gpu/drm/exynos/
H A Dexynos_drm_g2d.c208 unsigned long userptr; member
416 unsigned long userptr, in g2d_userptr_get_dma_addr() argument
435 if (g2d_userptr->userptr == userptr) { in g2d_userptr_get_dma_addr()
469 start = userptr & PAGE_MASK; in g2d_userptr_get_dma_addr()
470 offset = userptr & ~PAGE_MASK; in g2d_userptr_get_dma_addr()
471 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/drivers/accel/amdxdna/
H A Damdxdna_gem.c45 XDNA_ERR(xdna, "Invalid dev heap userptr"); in amdxdna_gem_heap_alloc()
436 XDNA_DBG(xdna, "BO map_offset 0x%llx type %d userptr 0x%lx size 0x%lx", in amdxdna_gem_prime_export()
910 XDNA_DBG(xdna, "BO hdl %d type %d userptr 0x%llx xdna_addr 0x%llx size 0x%lx", in amdxdna_drm_get_bo_info_ioctl()
/linux/drivers/gpu/drm/msm/
H A Dmsm_gem_submit.c138 void __user *userptr = in submit_lookup_objects() local
146 if (copy_from_user(&submit_bo, userptr, sizeof(submit_bo))) { in submit_lookup_objects()
204 void __user *userptr = in submit_lookup_cmds() local
207 ret = copy_from_user(&submit_cmd, userptr, sizeof(submit_cmd)); in submit_lookup_cmds()
249 userptr = u64_to_user_ptr(submit_cmd.relocs); in submit_lookup_cmds()
263 ret = copy_from_user(submit->cmd[i].relocs, userptr, sz); in submit_lookup_cmds()
/linux/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_ttm.c704 uint64_t userptr;
727 unsigned long start = gtt->userptr; in amdgpu_ttm_tt_get_user_pages()
826 * amdgpu_ttm_tt_unpin_userptr - Unpin and unmap userptr pages in amdgpu_ttm_tt_unpin_userptr()
914 if (gtt->userptr) { in amdgpu_ttm_backend_bind()
917 dev_err(adev->dev, "failed to pin userptr\n"); in amdgpu_ttm_backend_bind()
1040 /* if the pages have userptr pinning then clear that first */ in amdgpu_ttm_backend_unbind()
1041 if (gtt->userptr) { in amdgpu_ttm_backend_unbind()
1210 if (gtt->userptr) { in amdgpu_ttm_tt_populate()
1250 if (gtt->userptr) { in amdgpu_ttm_tt_unpopulate()
1274 * amdgpu_ttm_tt_get_userptr - Return the userptr GT
699 uint64_t userptr; global() member
1349 amdgpu_ttm_tt_affect_userptr(struct ttm_tt * ttm,unsigned long start,unsigned long end,unsigned long * userptr) amdgpu_ttm_tt_affect_userptr() argument
[all...]
/linux/drivers/gpu/drm/xe/
H A Dxe_vm_types.h139 * the vm->resv. For stable reading, BO's resv or userptr
180 * struct xe_userptr_vma - A userptr vma subclass
182 * @userptr: Additional userptr information.
186 struct xe_userptr userptr;
302 /** @userptr: user pointer state */
303 struct xe_userptr_vm userptr;
173 struct xe_userptr userptr; global() member
271 struct xe_userptr_vm userptr; global() member
H A Dxe_pt.c260 * vm lock, the object lock and for userptr, the notifier lock in read mode.
791 xe_res_first_dma(to_userptr_vma(vma)->userptr.pages.dma_addr, 0,
1405 u32 divisor = uvma->userptr.divisor ? uvma->userptr.divisor : 2; in vma_check_userptr()
1409 uvma->userptr.divisor = divisor << 1; in vma_check_userptr()
1440 notifier_seq = uvma->userptr.pages.notifier_seq; in op_check_svm_userptr()
1442 if (!mmu_interval_read_retry(&uvma->userptr.notifier, in op_check_svm_userptr()
2375 to_userptr_vma(vma)->userptr.initial_bind = true; in unbind_op_commit()
2412 spin_lock(&vm->userptr.invalidated_lock); in op_commit()
2413 list_del_init(&to_userptr_vma(vma)->userptr in op_commit()
[all...]
/linux/Documentation/userspace-api/media/v4l/
H A Dvidioc-prepare-buf.rst55 bounds, or no buffers have been allocated yet, or the ``userptr`` or
H A Dvidioc-qbuf.rst71 ``memory`` field to ``V4L2_MEMORY_USERPTR``, the ``m.userptr`` field to
73 multi-planar API is used, ``m.userptr`` and ``length`` members of the
164 bounds, or no buffers have been allocated yet, or the ``userptr`` or
H A Dcapture.c.rst161 if (buf.m.userptr == (unsigned long)buffers[i].start
167 process_image((void *)buf.m.userptr, buf.bytesused);
269 buf.m.userptr = (unsigned long)buffers[i].start;
/linux/include/linux/
H A Dsplice.h37 void __user *userptr; /* memory to write to */ member
/linux/net/ipv4/netfilter/
H A Dip_tables.c812 void __user *userptr) in copy_entries_to_user() argument
835 if (copy_to_user(userptr + off, e, sizeof(*e))) { in copy_entries_to_user()
839 if (copy_to_user(userptr + off in copy_entries_to_user()
852 if (xt_match_to_user(m, userptr + off + i)) { in copy_entries_to_user()
859 if (xt_target_to_user(t, userptr + off + e->target_offset)) { in copy_entries_to_user()
1551 void __user *userptr) in compat_copy_entries_to_user() argument
1565 pos = userptr; in compat_copy_entries_to_user()
H A Darp_tables.c672 void __user *userptr) in copy_entries_to_user() argument
693 if (copy_to_user(userptr + off, e, sizeof(*e))) { in copy_entries_to_user()
697 if (copy_to_user(userptr + off in copy_entries_to_user()
706 if (xt_target_to_user(t, userptr + off + e->target_offset)) { in copy_entries_to_user()
1341 void __user *userptr) in compat_copy_entries_to_user() argument
1355 pos = userptr; in compat_copy_entries_to_user()
/linux/net/ipv6/netfilter/
H A Dip6_tables.c828 void __user *userptr) in copy_entries_to_user() argument
851 if (copy_to_user(userptr + off, e, sizeof(*e))) { in copy_entries_to_user()
855 if (copy_to_user(userptr + off in copy_entries_to_user()
868 if (xt_match_to_user(m, userptr + off + i)) { in copy_entries_to_user()
875 if (xt_target_to_user(t, userptr + off + e->target_offset)) { in copy_entries_to_user()
1560 void __user *userptr) in compat_copy_entries_to_user() argument
1574 pos = userptr; in compat_copy_entries_to_user()
/linux/drivers/cdrom/
H A Dcdrom.c3275 void __user *userptr = (void __user *)arg; in mmc_ioctl() local
3285 return mmc_ioctl_cdrom_read_data(cdi, userptr, &cgc, cmd); in mmc_ioctl()
3287 return mmc_ioctl_cdrom_read_audio(cdi, userptr); in mmc_ioctl()
3289 return mmc_ioctl_cdrom_subchannel(cdi, userptr); in mmc_ioctl()
3291 return mmc_ioctl_cdrom_play_msf(cdi, userptr, &cgc); in mmc_ioctl()
3293 return mmc_ioctl_cdrom_play_blk(cdi, userptr, &cgc); in mmc_ioctl()
3296 return mmc_ioctl_cdrom_volume(cdi, userptr, &cgc, cmd); in mmc_ioctl()
3304 return mmc_ioctl_dvd_read_struct(cdi, userptr, &cgc); in mmc_ioctl()
3306 return mmc_ioctl_dvd_auth(cdi, userptr); in mmc_ioctl()
3308 return mmc_ioctl_cdrom_next_writable(cdi, userptr); in mmc_ioctl()
[all …]
/linux/drivers/accel/habanalabs/goya/
H A Dgoya.c3331 struct hl_userptr *userptr; in goya_pin_memory_before_cs() local
3335 parser->job_userptr_list, &userptr)) in goya_pin_memory_before_cs()
3338 userptr = kzalloc_obj(*userptr); in goya_pin_memory_before_cs()
3339 if (!userptr) in goya_pin_memory_before_cs()
3343 userptr); in goya_pin_memory_before_cs()
3347 list_add_tail(&userptr->job_node, parser->job_userptr_list); in goya_pin_memory_before_cs()
3349 rc = hl_dma_map_sgtable(hdev, userptr->sgt, dir); in goya_pin_memory_before_cs()
3355 userptr->dma_mapped = true; in goya_pin_memory_before_cs()
3356 userptr->dir = dir; in goya_pin_memory_before_cs()
3360 goya_get_dma_desc_list_size(hdev, userptr->sgt); in goya_pin_memory_before_cs()
[all …]
/linux/include/uapi/drm/
H A Dexynos_drm.h119 unsigned long userptr; member
/linux/drivers/media/common/videobuf2/
H A Dvideobuf2-core.c1277 if (vb->planes[plane].m.userptr && in __prepare_userptr()
1278 vb->planes[plane].m.userptr == planes[plane].m.userptr in __prepare_userptr()
1308 vb->planes[plane].m.userptr = 0; in __prepare_userptr()
1315 planes[plane].m.userptr, in __prepare_userptr()
1333 vb->planes[plane].m.userptr = planes[plane].m.userptr; in __prepare_userptr()
1365 vb->planes[plane].m.userptr = 0; in __prepare_userptr()

12