| /linux/Documentation/gpu/ |
| H A D | drm-vm-bind-locking.rst | 8 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 …]
|
| H A D | drm-vm-bind-async.rst | 196 /** @userptr: user virtual address for MAP_USERPTR */ 197 __u64 userptr; 292 * @vector_of_binds: userptr to array of struct
|
| /linux/drivers/gpu/drm/radeon/ |
| H A D | Kconfig | 39 bool "Always enable userptr support" 44 selected to enabled full userptr support.
|
| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_gem_submit.c | 138 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()
|
| H A D | msm_gem_vma.c | 1066 void __user *userptr = in vm_bind_job_lookup_ops() local 1074 if (copy_from_user(&op, userptr, sizeof(op))) { in vm_bind_job_lookup_ops()
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_ttm.c | 685 uint64_t userptr; member 708 unsigned long start = gtt->userptr; in amdgpu_ttm_tt_get_user_pages() 905 if (gtt->userptr) { in amdgpu_ttm_backend_bind() 1032 if (gtt->userptr) { in amdgpu_ttm_backend_unbind() 1121 if (gtt->userptr) { in amdgpu_ttm_tt_populate() 1161 if (gtt->userptr) { in amdgpu_ttm_tt_unpopulate() 1200 *user_addr = gtt->userptr; in amdgpu_ttm_tt_get_userptr() 1232 gtt->userptr = addr; in amdgpu_ttm_tt_set_userptr() 1265 unsigned long end, unsigned long *userptr) in amdgpu_ttm_tt_affect_userptr() argument 1270 if (gtt == NULL || !gtt->userptr) in amdgpu_ttm_tt_affect_userptr() [all …]
|
| /linux/drivers/media/common/videobuf2/ |
| H A D | videobuf2-v4l2.c | 210 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()
|
| H A D | videobuf2-core.c | 1283 if (vb->planes[plane].m.userptr && in __prepare_userptr() 1284 vb->planes[plane].m.userptr == planes[plane].m.userptr in __prepare_userptr() 1314 vb->planes[plane].m.userptr = 0; in __prepare_userptr() 1321 planes[plane].m.userptr, in __prepare_userptr() 1339 vb->planes[plane].m.userptr = planes[plane].m.userptr; in __prepare_userptr() 1371 vb->planes[plane].m.userptr = 0; in __prepare_userptr()
|
| /linux/drivers/gpu/drm/etnaviv/ |
| H A D | etnaviv_gem.h | 58 struct etnaviv_gem_userptr userptr; member
|
| /linux/Documentation/userspace-api/media/v4l/ |
| H A D | vidioc-prepare-buf.rst | 55 bounds, or no buffers have been allocated yet, or the ``userptr`` or
|
| H A D | vidioc-qbuf.rst | 71 ``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 D | capture.c.rst | 161 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/drivers/gpu/drm/xe/ |
| H A D | xe_pt.c | 765 xe_res_first_dma(to_userptr_vma(vma)->userptr.pages.dma_addr, 0, in xe_pt_stage_bind() 1379 u32 divisor = uvma->userptr.divisor ? uvma->userptr.divisor : 2; in xe_pt_userptr_inject_eagain() 1383 uvma->userptr.divisor = divisor << 1; in xe_pt_userptr_inject_eagain() 1414 notifier_seq = uvma->userptr.pages.notifier_seq; in vma_check_userptr() 1416 if (!mmu_interval_read_retry(&uvma->userptr.notifier, in vma_check_userptr() 2179 to_userptr_vma(vma)->userptr.initial_bind = true; in bind_op_commit() 2216 spin_lock(&vm->userptr.invalidated_lock); in unbind_op_commit() 2217 list_del_init(&to_userptr_vma(vma)->userptr.invalidate_link); in unbind_op_commit() 2218 spin_unlock(&vm->userptr.invalidated_lock); in unbind_op_commit()
|
| /linux/include/linux/ |
| H A D | splice.h | 37 void __user *userptr; /* memory to write to */ member
|
| /linux/net/ipv4/netfilter/ |
| H A D | ip_tables.c | 812 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 D | arp_tables.c | 672 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 D | ip6_tables.c | 828 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 D | cdrom.c | 3275 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 D | goya.c | 3332 struct hl_userptr *userptr; in goya_pin_memory_before_cs() local 3336 parser->job_userptr_list, &userptr)) in goya_pin_memory_before_cs() 3339 userptr = kzalloc(sizeof(*userptr), GFP_KERNEL); in goya_pin_memory_before_cs() 3340 if (!userptr) in goya_pin_memory_before_cs() 3344 userptr); in goya_pin_memory_before_cs() 3348 list_add_tail(&userptr->job_node, parser->job_userptr_list); in goya_pin_memory_before_cs() 3350 rc = hl_dma_map_sgtable(hdev, userptr->sgt, dir); in goya_pin_memory_before_cs() 3356 userptr->dma_mapped = true; in goya_pin_memory_before_cs() 3357 userptr->dir = dir; in goya_pin_memory_before_cs() 3361 goya_get_dma_desc_list_size(hdev, userptr->sgt); in goya_pin_memory_before_cs() [all …]
|
| /linux/include/uapi/drm/ |
| H A D | exynos_drm.h | 119 unsigned long userptr; member
|
| H A D | xe_drm.h | 1083 * Note: For userptr and externally imported dma-buf the kernel expects 1106 /** @userptr: user pointer to bind on */ 1107 __u64 userptr; member 1164 * illustrate `userptr`. It can be synchronized by using the example 1211 * @vector_of_binds: userptr to array of struct 2269 /** @vector_of_mem_attr: userptr to array of struct drm_xe_mem_range_attr */
|
| /linux/include/media/ |
| H A D | videobuf2-core.h | 190 unsigned long userptr; member
|
| /linux/Documentation/gpu/rfc/ |
| H A D | i915_vm_bind.rst | 31 * Support for userptr gem objects (no special uapi is required for this). 122 invalidated vmas (due to eviction and userptr invalidation) etc.
|
| H A D | gpusvm.rst | 116 * Build common userptr implementation on top of GPU SVM
|
| /linux/Documentation/ABI/testing/ |
| H A D | debugfs-driver-habanalabs | 302 What: /sys/kernel/debug/accel/<parent_device>/userptr
|