/linux-master/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) argument 112 fence = dma_fence_get_rcu_safe(&syncobj->fence); 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);
|
/linux-master/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 229 struct drm_syncobj *syncobj; member in struct:syncobj_eventfd_entry 250 struct drm_syncobj *syncobj; local 265 drm_syncobj_fence_add_wait(struct drm_syncobj *syncobj, struct syncobj_wait_entry *wait) argument 290 drm_syncobj_remove_wait(struct drm_syncobj *syncobj, struct syncobj_wait_entry *wait) argument 314 drm_syncobj_add_eventfd(struct drm_syncobj *syncobj, struct syncobj_eventfd_entry *entry) argument 332 drm_syncobj_add_point(struct drm_syncobj *syncobj, struct dma_fence_chain *chain, struct dma_fence *fence, uint64_t point) argument 371 drm_syncobj_replace_fence(struct drm_syncobj *syncobj, struct dma_fence *fence) argument 406 drm_syncobj_assign_null_handle(struct drm_syncobj *syncobj) argument 439 struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle); local 527 struct drm_syncobj *syncobj = container_of(kref, local 557 struct drm_syncobj *syncobj; local 595 drm_syncobj_get_handle(struct drm_file *file_private, struct drm_syncobj *syncobj, u32 *handle) argument 624 struct drm_syncobj *syncobj; local 638 struct drm_syncobj *syncobj; local 653 struct drm_syncobj *syncobj = file->private_data; local 672 drm_syncobj_get_fd(struct drm_syncobj *syncobj, int *p_fd) argument 700 struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle); local 714 struct drm_syncobj *syncobj; local 750 struct drm_syncobj *syncobj; local 816 struct drm_syncobj *syncobj = ptr; local 1011 syncobj_wait_syncobj_func(struct drm_syncobj *syncobj, struct syncobj_wait_entry *wait) argument 1418 syncobj_eventfd_entry_func(struct drm_syncobj *syncobj, struct syncobj_eventfd_entry *entry) argument 1464 struct drm_syncobj *syncobj; local [all...] |
/linux-master/drivers/gpu/drm/xe/ |
H A D | xe_sync_types.h | 18 struct drm_syncobj *syncobj; member in struct:xe_sync_entry
|
H A D | xe_sync.c | 130 sync->syncobj = drm_syncobj_find(xef->drm, sync_in.handle); 131 if (XE_IOCTL_DBG(xe, !sync->syncobj)) 135 sync->fence = drm_syncobj_fence_get(sync->syncobj); 151 sync->syncobj = drm_syncobj_find(xef->drm, sync_in.handle); 152 if (XE_IOCTL_DBG(xe, !sync->syncobj)) 160 sync->fence = drm_syncobj_fence_get(sync->syncobj); 234 drm_syncobj_add_point(sync->syncobj, sync->chain_fence, 241 } else if (sync->syncobj) { 242 drm_syncobj_replace_fence(sync->syncobj, fence); 266 if (sync->syncobj) [all...] |
/linux-master/drivers/gpu/drm/imagination/ |
H A D | pvr_sync.h | 22 * struct pvr_sync_signal - Object encoding a syncobj signal operation 27 * signals a syncobj point that's later waited on by a subsequent job. 30 /** @handle: Handle of the syncobj to signal. */ 34 * @point: Point to signal in the syncobj. 40 /** @syncobj: Syncobj retrieved from the handle. */ 41 struct drm_syncobj *syncobj; member in struct:pvr_sync_signal 45 * existing timeline syncobj. 47 * Should be zero when manipulating a regular syncobj. 52 * @fence: New fence object to attach to the syncobj.
|
H A D | pvr_sync.c | 41 drm_syncobj_put(sig_sync->syncobj); 82 sig_sync->syncobj = drm_syncobj_find(file, handle); 83 if (!sig_sync->syncobj) { 196 drm_syncobj_add_point(sig_sync->syncobj, sig_sync->chain, 200 drm_syncobj_replace_fence(sig_sync->syncobj, sig_sync->fence);
|
/linux-master/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_cs.h | 44 struct drm_syncobj *syncobj; member in struct:amdgpu_cs_post_dep
|
H A D | amdgpu_cs.c | 443 DRM_ERROR("syncobj %u failed to find fence @ %llu (%d)!\n", 513 p->post_deps[i].syncobj = 515 if (!p->post_deps[i].syncobj) 555 dep->syncobj = drm_syncobj_find(p->filp, 557 if (!dep->syncobj) { 1242 drm_syncobj_add_point(p->post_deps[i].syncobj, 1247 drm_syncobj_replace_fence(p->post_deps[i].syncobj, 1365 drm_syncobj_put(parser->post_deps[i].syncobj); 1541 struct drm_syncobj *syncobj; local 1554 r = drm_syncobj_create(&syncobj, [all...] |
/linux-master/drivers/gpu/drm/virtio/ |
H A D | virtgpu_submit.c | 23 struct drm_syncobj *syncobj; member in struct:virtio_gpu_submit_post_dep 180 drm_syncobj_put(post_deps[i].syncobj); 229 post_deps[i].syncobj = drm_syncobj_find(submit->file, 231 if (!post_deps[i].syncobj) { 260 drm_syncobj_add_point(post_deps[i].syncobj, 265 drm_syncobj_replace_fence(post_deps[i].syncobj,
|
/linux-master/drivers/gpu/drm/i915/gem/ |
H A D | i915_gem_context_types.h | 212 /** @single_timeline: See See &i915_gem_context.syncobj */ 262 * @syncobj: Shared timeline syncobj 265 * emulate a single timeline across all engines using this syncobj. 266 * For every execbuffer2 call, this syncobj is used as both an in- 273 struct drm_syncobj *syncobj; member in struct:i915_gem_context
|
H A D | i915_gem_execbuffer.c | 241 struct drm_syncobj *syncobj; /* Use with ptr_mask_bits() */ member in struct:eb_fence 2794 drm_syncobj_put(ptr_mask_bits(fences[n].syncobj, 2)); 2844 struct drm_syncobj *syncobj; local 2859 syncobj = drm_syncobj_find(eb->file, user_fence.handle); 2860 if (!syncobj) { 2862 "Invalid syncobj handle provided\n"); 2866 fence = drm_syncobj_fence_get(syncobj); 2872 drm_syncobj_put(syncobj); 2884 drm_syncobj_put(syncobj); 2894 drm_syncobj_put(syncobj); 2969 struct drm_syncobj *syncobj; local 3040 struct drm_syncobj *syncobj; local [all...] |
H A D | i915_gem_context.c | 1282 if (ctx->syncobj) 1283 drm_syncobj_put(ctx->syncobj); 1661 err = drm_syncobj_create(&ctx->syncobj,
|
/linux-master/drivers/gpu/drm/tegra/ |
H A D | submit.c | 515 struct drm_syncobj *syncobj = NULL; local 550 syncobj = drm_syncobj_find(file, args->syncobj_out); 551 if (!syncobj) { 648 if (syncobj) { 655 drm_syncobj_replace_fence(syncobj, fence); 679 if (syncobj) 680 drm_syncobj_put(syncobj);
|
/linux-master/drivers/gpu/drm/v3d/ |
H A D | v3d_drv.h | 335 struct drm_syncobj *syncobj; member in struct:v3d_timestamp_query 347 struct drm_syncobj *syncobj; member in struct:v3d_performance_query 428 struct drm_syncobj *syncobj; member in struct:v3d_submit_outsync
|
H A D | v3d_submit.c | 258 drm_syncobj_replace_fence(se->out_syncs[i].syncobj, 260 drm_syncobj_put(se->out_syncs[i].syncobj); 318 drm_syncobj_put(se->out_syncs[i].syncobj); 351 se->out_syncs[i].syncobj = drm_syncobj_find(file_priv, 353 if (!se->out_syncs[i].syncobj) { 364 drm_syncobj_put(se->out_syncs[i].syncobj); 370 /* Get data for multiple binary semaphores synchronization. Parse syncobj 498 job->timestamp_query.queries[i].syncobj = drm_syncobj_find(file_priv, sync); 546 job->timestamp_query.queries[i].syncobj = drm_syncobj_find(file_priv, sync); 605 job->timestamp_query.queries[i].syncobj [all...] |
H A D | v3d_sched.c | 85 drm_syncobj_put(timestamp_query->queries[i].syncobj); 91 drm_syncobj_put(performance_query->queries[i].syncobj); 345 drm_syncobj_replace_fence(timestamp_query->queries[i].syncobj, 366 drm_syncobj_replace_fence(queries[i].syncobj, NULL); 406 fence = drm_syncobj_fence_get(queries[i].syncobj); 451 drm_syncobj_replace_fence(performance_query->queries[i].syncobj, NULL); 500 fence = drm_syncobj_fence_get(performance_query->queries[i].syncobj);
|
/linux-master/drivers/gpu/drm/msm/ |
H A D | msm_gem_submit.c | 483 struct drm_syncobj *syncobj; member in struct:msm_submit_post_dep 609 post_deps[i].syncobj = 611 if (!post_deps[i].syncobj) { 620 if (post_deps[j].syncobj) 621 drm_syncobj_put(post_deps[j].syncobj); 638 drm_syncobj_add_point(post_deps[i].syncobj, 643 drm_syncobj_replace_fence(post_deps[i].syncobj, 921 drm_syncobj_put(post_deps[i].syncobj);
|