/kernel/linux/linux-5.10/drivers/gpu/drm/ |
H A D | drm_syncobj.c | 32 * DRM synchronisation objects (syncobj, see struct &drm_syncobj) provide a 37 * The syncobj userspace API provides ioctls for several operations: 40 * - Import and export of syncobjs to/from a syncobj file descriptor 41 * - Import and export a syncobj's underlying fence to/from a sync file 42 * - Reset a syncobj (set its fence to NULL) 43 * - Signal a syncobj (set a trivially signaled fence) 44 * - Wait for a syncobj's fence to appear and be signaled 46 * The syncobj userspace API also provides operations to manipulate a syncobj 54 * At it's core, a syncobj i 225 struct drm_syncobj *syncobj; drm_syncobj_find() local 240 drm_syncobj_fence_add_wait(struct drm_syncobj *syncobj, struct syncobj_wait_entry *wait) drm_syncobj_fence_add_wait() argument 265 drm_syncobj_remove_wait(struct drm_syncobj *syncobj, struct syncobj_wait_entry *wait) drm_syncobj_remove_wait() argument 285 drm_syncobj_add_point(struct drm_syncobj *syncobj, struct dma_fence_chain *chain, struct dma_fence *fence, uint64_t point) drm_syncobj_add_point() argument 321 drm_syncobj_replace_fence(struct drm_syncobj *syncobj, struct dma_fence *fence) drm_syncobj_replace_fence() argument 353 drm_syncobj_assign_null_handle(struct drm_syncobj *syncobj) drm_syncobj_assign_null_handle() argument 382 struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle); drm_syncobj_find_fence() local 458 struct drm_syncobj *syncobj = container_of(kref, drm_syncobj_free() local 481 struct drm_syncobj *syncobj; drm_syncobj_create() local 513 drm_syncobj_get_handle(struct drm_file *file_private, struct drm_syncobj *syncobj, u32 *handle) drm_syncobj_get_handle() argument 542 struct drm_syncobj *syncobj; drm_syncobj_create_as_handle() local 556 struct drm_syncobj *syncobj; drm_syncobj_destroy() local 571 struct drm_syncobj *syncobj = file->private_data; drm_syncobj_file_release() local 590 drm_syncobj_get_fd(struct drm_syncobj *syncobj, int *p_fd) drm_syncobj_get_fd() argument 618 struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle); drm_syncobj_handle_to_fd() local 632 struct drm_syncobj *syncobj; drm_syncobj_fd_to_handle() local 668 struct drm_syncobj *syncobj; drm_syncobj_import_sync_file_fence() local 734 struct drm_syncobj *syncobj = ptr; drm_syncobj_release_handle() local 920 syncobj_wait_syncobj_func(struct drm_syncobj *syncobj, struct syncobj_wait_entry *wait) syncobj_wait_syncobj_func() argument [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/ |
H A D | drm_syncobj.c | 32 * DRM synchronisation objects (syncobj, see struct &drm_syncobj) provide a 37 * The syncobj userspace API provides ioctls for several operations: 40 * - Import and export of syncobjs to/from a syncobj file descriptor 41 * - Import and export a syncobj's underlying fence to/from a sync file 42 * - Reset a syncobj (set its fence to NULL) 43 * - Signal a syncobj (set a trivially signaled fence) 44 * - Wait for a syncobj's fence to appear and be signaled 46 * The syncobj userspace API also provides operations to manipulate a syncobj 54 * At it's core, a syncobj i 224 struct drm_syncobj *syncobj; global() member 245 struct drm_syncobj *syncobj; drm_syncobj_find() local 260 drm_syncobj_fence_add_wait(struct drm_syncobj *syncobj, struct syncobj_wait_entry *wait) drm_syncobj_fence_add_wait() argument 285 drm_syncobj_remove_wait(struct drm_syncobj *syncobj, struct syncobj_wait_entry *wait) drm_syncobj_remove_wait() argument 309 drm_syncobj_add_eventfd(struct drm_syncobj *syncobj, struct syncobj_eventfd_entry *entry) drm_syncobj_add_eventfd() argument 327 drm_syncobj_add_point(struct drm_syncobj *syncobj, struct dma_fence_chain *chain, struct dma_fence *fence, uint64_t point) drm_syncobj_add_point() argument 366 drm_syncobj_replace_fence(struct drm_syncobj *syncobj, struct dma_fence *fence) drm_syncobj_replace_fence() argument 401 drm_syncobj_assign_null_handle(struct drm_syncobj *syncobj) drm_syncobj_assign_null_handle() argument 434 struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle); drm_syncobj_find_fence() local 519 struct drm_syncobj *syncobj = container_of(kref, drm_syncobj_free() local 549 struct drm_syncobj *syncobj; drm_syncobj_create() local 587 drm_syncobj_get_handle(struct drm_file *file_private, struct drm_syncobj *syncobj, u32 *handle) drm_syncobj_get_handle() argument 616 struct drm_syncobj *syncobj; drm_syncobj_create_as_handle() local 630 struct drm_syncobj *syncobj; drm_syncobj_destroy() local 645 struct drm_syncobj *syncobj = file->private_data; drm_syncobj_file_release() local 664 drm_syncobj_get_fd(struct drm_syncobj *syncobj, int *p_fd) drm_syncobj_get_fd() argument 692 struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle); drm_syncobj_handle_to_fd() local 706 struct drm_syncobj *syncobj; drm_syncobj_fd_to_handle() local 742 struct drm_syncobj *syncobj; drm_syncobj_import_sync_file_fence() local 808 struct drm_syncobj *syncobj = ptr; drm_syncobj_release_handle() local 1003 syncobj_wait_syncobj_func(struct drm_syncobj *syncobj, struct syncobj_wait_entry *wait) syncobj_wait_syncobj_func() argument 1375 syncobj_eventfd_entry_func(struct drm_syncobj *syncobj, struct syncobj_eventfd_entry *entry) syncobj_eventfd_entry_func() argument 1421 struct drm_syncobj *syncobj; drm_syncobj_eventfd_ioctl() local [all...] |
/kernel/linux/linux-5.10/include/drm/ |
H A D | drm_syncobj.h | 61 * @file: A file backing for this syncobj. 69 * drm_syncobj_get - acquire a syncobj reference 93 * @syncobj: sync object. 103 drm_syncobj_fence_get(struct drm_syncobj *syncobj) in drm_syncobj_fence_get() argument 108 fence = dma_fence_get_rcu_safe(&syncobj->fence); in drm_syncobj_fence_get() 116 void drm_syncobj_add_point(struct drm_syncobj *syncobj, 120 void drm_syncobj_replace_fence(struct drm_syncobj *syncobj, 129 struct drm_syncobj *syncobj, u32 *handle); 130 int drm_syncobj_get_fd(struct drm_syncobj *syncobj, int *p_fd);
|
/kernel/linux/linux-6.6/include/drm/ |
H A D | drm_syncobj.h | 65 * @file: A file backing for this syncobj. 73 * drm_syncobj_get - acquire a syncobj reference 97 * @syncobj: sync object. 107 drm_syncobj_fence_get(struct drm_syncobj *syncobj) in drm_syncobj_fence_get() argument 112 fence = dma_fence_get_rcu_safe(&syncobj->fence); in drm_syncobj_fence_get() 120 void drm_syncobj_add_point(struct drm_syncobj *syncobj, 124 void drm_syncobj_replace_fence(struct drm_syncobj *syncobj, 133 struct drm_syncobj *syncobj, u32 *handle); 134 int drm_syncobj_get_fd(struct drm_syncobj *syncobj, int *p_fd);
|
/kernel/linux/linux-6.6/drivers/gpu/drm/i915/gem/ |
H A D | i915_gem_execbuffer.c | 240 struct drm_syncobj *syncobj; /* Use with ptr_mask_bits() */ member 2799 drm_syncobj_put(ptr_mask_bits(fences[n].syncobj, 2)); in __free_fence_array() 2849 struct drm_syncobj *syncobj; in add_timeline_fence_array() local 2864 syncobj = drm_syncobj_find(eb->file, user_fence.handle); in add_timeline_fence_array() 2865 if (!syncobj) { in add_timeline_fence_array() 2867 "Invalid syncobj handle provided\n"); in add_timeline_fence_array() 2871 fence = drm_syncobj_fence_get(syncobj); in add_timeline_fence_array() 2877 drm_syncobj_put(syncobj); in add_timeline_fence_array() 2889 drm_syncobj_put(syncobj); in add_timeline_fence_array() 2899 drm_syncobj_put(syncobj); in add_timeline_fence_array() 2974 struct drm_syncobj *syncobj; add_fence_array() local 3045 struct drm_syncobj *syncobj; signal_fence_array() local [all...] |
H A D | i915_gem_context_types.h | 209 /** @single_timeline: See See &i915_gem_context.syncobj */ 259 * @syncobj: Shared timeline syncobj 262 * emulate a single timeline across all engines using this syncobj. 263 * For every execbuffer2 call, this syncobj is used as both an in- 270 struct drm_syncobj *syncobj; member
|
H A D | i915_gem_context.c | 1280 if (ctx->syncobj) in i915_gem_context_release_work() 1281 drm_syncobj_put(ctx->syncobj); in i915_gem_context_release_work() 1658 err = drm_syncobj_create(&ctx->syncobj, in i915_gem_create_context()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/i915/gem/ |
H A D | i915_gem_execbuffer.c | 230 struct drm_syncobj *syncobj; /* Use with ptr_mask_bits() */ member 2673 drm_syncobj_put(ptr_mask_bits(fences[n].syncobj, 2)); in __free_fence_array() 2723 struct drm_syncobj *syncobj; in add_timeline_fence_array() local 2738 syncobj = drm_syncobj_find(eb->file, user_fence.handle); in add_timeline_fence_array() 2739 if (!syncobj) { in add_timeline_fence_array() 2740 DRM_DEBUG("Invalid syncobj handle provided\n"); in add_timeline_fence_array() 2744 fence = drm_syncobj_fence_get(syncobj); in add_timeline_fence_array() 2749 drm_syncobj_put(syncobj); in add_timeline_fence_array() 2759 drm_syncobj_put(syncobj); in add_timeline_fence_array() 2769 drm_syncobj_put(syncobj); in add_timeline_fence_array() 2845 struct drm_syncobj *syncobj; add_fence_array() local 2896 struct drm_syncobj *syncobj; await_fence_array() local 2919 struct drm_syncobj *syncobj; signal_fence_array() local [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/virtio/ |
H A D | virtgpu_submit.c | 23 struct drm_syncobj *syncobj; member 180 drm_syncobj_put(post_deps[i].syncobj); in virtio_gpu_free_post_deps() 229 post_deps[i].syncobj = drm_syncobj_find(submit->file, in virtio_gpu_parse_post_deps() 231 if (!post_deps[i].syncobj) { in virtio_gpu_parse_post_deps() 260 drm_syncobj_add_point(post_deps[i].syncobj, in virtio_gpu_process_post_deps() 265 drm_syncobj_replace_fence(post_deps[i].syncobj, in virtio_gpu_process_post_deps()
|
/kernel/linux/linux-6.6/drivers/gpu/drm/tegra/ |
H A D | submit.c | 515 struct drm_syncobj *syncobj = NULL; in tegra_drm_ioctl_channel_submit() local 550 syncobj = drm_syncobj_find(file, args->syncobj_out); in tegra_drm_ioctl_channel_submit() 551 if (!syncobj) { in tegra_drm_ioctl_channel_submit() 648 if (syncobj) { in tegra_drm_ioctl_channel_submit() 655 drm_syncobj_replace_fence(syncobj, fence); in tegra_drm_ioctl_channel_submit() 679 if (syncobj) in tegra_drm_ioctl_channel_submit() 680 drm_syncobj_put(syncobj); in tegra_drm_ioctl_channel_submit()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/msm/ |
H A D | msm_gem_submit.c | 398 struct drm_syncobj *syncobj; member 535 post_deps[i].syncobj = in msm_parse_post_deps() 537 if (!post_deps[i].syncobj) { in msm_parse_post_deps() 546 if (post_deps[j].syncobj) in msm_parse_post_deps() 547 drm_syncobj_put(post_deps[j].syncobj); in msm_parse_post_deps() 564 drm_syncobj_add_point(post_deps[i].syncobj, in msm_process_post_deps() 569 drm_syncobj_replace_fence(post_deps[i].syncobj, in msm_process_post_deps() 816 drm_syncobj_put(post_deps[i].syncobj); in msm_ioctl_gem_submit()
|
/kernel/linux/linux-6.6/drivers/gpu/drm/msm/ |
H A D | msm_gem_submit.c | 573 struct drm_syncobj *syncobj; member 699 post_deps[i].syncobj = in msm_parse_post_deps() 701 if (!post_deps[i].syncobj) { in msm_parse_post_deps() 710 if (post_deps[j].syncobj) in msm_parse_post_deps() 711 drm_syncobj_put(post_deps[j].syncobj); in msm_parse_post_deps() 728 drm_syncobj_add_point(post_deps[i].syncobj, in msm_process_post_deps() 733 drm_syncobj_replace_fence(post_deps[i].syncobj, in msm_process_post_deps() 1016 drm_syncobj_put(post_deps[i].syncobj); in msm_ioctl_gem_submit()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_cs.c | 684 drm_syncobj_put(parser->post_deps[i].syncobj); in amdgpu_cs_parser_fini() 1002 DRM_ERROR("syncobj %u failed to find fence @ %llu (%d)!\n", in amdgpu_syncobj_lookup_and_add_to_sync() 1079 p->post_deps[i].syncobj = in amdgpu_cs_process_syncobj_out_dep() 1081 if (!p->post_deps[i].syncobj) in amdgpu_cs_process_syncobj_out_dep() 1123 dep->syncobj = drm_syncobj_find(p->filp, in amdgpu_cs_process_syncobj_timeline_out_dep() 1125 if (!dep->syncobj) { in amdgpu_cs_process_syncobj_timeline_out_dep() 1185 drm_syncobj_add_point(p->post_deps[i].syncobj, in amdgpu_cs_post_dependencies() 1190 drm_syncobj_replace_fence(p->post_deps[i].syncobj, in amdgpu_cs_post_dependencies() 1428 struct drm_syncobj *syncobj; in amdgpu_cs_fence_to_handle_ioctl() local 1441 r = drm_syncobj_create(&syncobj, in amdgpu_cs_fence_to_handle_ioctl() [all...] |
H A D | amdgpu.h | 491 struct drm_syncobj *syncobj; member
|
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_cs.c | 443 DRM_ERROR("syncobj %u failed to find fence @ %llu (%d)!\n", in amdgpu_syncobj_lookup_and_add() 513 p->post_deps[i].syncobj = in amdgpu_cs_p2_syncobj_out() 515 if (!p->post_deps[i].syncobj) in amdgpu_cs_p2_syncobj_out() 555 dep->syncobj = drm_syncobj_find(p->filp, in amdgpu_cs_p2_syncobj_timeline_signal() 557 if (!dep->syncobj) { in amdgpu_cs_p2_syncobj_timeline_signal() 1237 drm_syncobj_add_point(p->post_deps[i].syncobj, in amdgpu_cs_post_dependencies() 1242 drm_syncobj_replace_fence(p->post_deps[i].syncobj, in amdgpu_cs_post_dependencies() 1360 drm_syncobj_put(parser->post_deps[i].syncobj); in amdgpu_cs_parser_fini() 1537 struct drm_syncobj *syncobj; in amdgpu_cs_fence_to_handle_ioctl() local 1550 r = drm_syncobj_create(&syncobj, in amdgpu_cs_fence_to_handle_ioctl() [all...] |
H A D | amdgpu_cs.h | 44 struct drm_syncobj *syncobj; member
|
/kernel/linux/linux-6.6/drivers/gpu/drm/v3d/ |
H A D | v3d_gem.c | 511 drm_syncobj_replace_fence(se->out_syncs[i].syncobj, in v3d_attach_fences_and_unlock_reservation() 513 drm_syncobj_put(se->out_syncs[i].syncobj); in v3d_attach_fences_and_unlock_reservation() 528 drm_syncobj_put(se->out_syncs[i].syncobj); in v3d_put_multisync_post_deps() 561 se->out_syncs[i].syncobj = drm_syncobj_find(file_priv, in v3d_get_multisync_post_deps() 563 if (!se->out_syncs[i].syncobj) { in v3d_get_multisync_post_deps() 574 drm_syncobj_put(se->out_syncs[i].syncobj); in v3d_get_multisync_post_deps() 580 /* Get data for multiple binary semaphores synchronization. Parse syncobj
|
H A D | v3d_drv.h | 289 struct drm_syncobj *syncobj; member
|