Home
last modified time | relevance | path

Searched refs:syncobj (Results 1 – 23 of 23) sorted by relevance

/linux/drivers/gpu/drm/
H A Ddrm_syncobj.c223 static void syncobj_wait_syncobj_func(struct drm_syncobj *syncobj,
230 struct drm_syncobj *syncobj; member
237 syncobj_eventfd_entry_func(struct drm_syncobj *syncobj,
251 struct drm_syncobj *syncobj; in drm_syncobj_find() local
256 syncobj = xa_load(&file_private->syncobj_xa, handle); in drm_syncobj_find()
257 if (syncobj) in drm_syncobj_find()
258 drm_syncobj_get(syncobj); in drm_syncobj_find()
262 return syncobj; in drm_syncobj_find()
266 static void drm_syncobj_fence_add_wait(struct drm_syncobj *syncobj, in drm_syncobj_fence_add_wait() argument
274 spin_lock(&syncobj->lock); in drm_syncobj_fence_add_wait()
[all …]
/linux/include/drm/
H A Ddrm_syncobj.h107 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);
/linux/drivers/gpu/drm/xe/
H A Dxe_sync.c143 sync->syncobj = drm_syncobj_find(xef->drm, sync_in.handle); in xe_sync_entry_parse()
144 if (XE_IOCTL_DBG(xe, !sync->syncobj)) in xe_sync_entry_parse()
148 sync->fence = drm_syncobj_fence_get(sync->syncobj); in xe_sync_entry_parse()
166 sync->syncobj = drm_syncobj_find(xef->drm, sync_in.handle); in xe_sync_entry_parse()
167 if (XE_IOCTL_DBG(xe, !sync->syncobj)) in xe_sync_entry_parse()
177 sync->fence = drm_syncobj_fence_get(sync->syncobj); in xe_sync_entry_parse()
275 drm_syncobj_add_point(sync->syncobj, sync->chain_fence, in xe_sync_entry_signal()
282 } else if (sync->syncobj) { in xe_sync_entry_signal()
283 drm_syncobj_replace_fence(sync->syncobj, fence); in xe_sync_entry_signal()
308 if (sync->syncobj) in xe_sync_entry_cleanup()
[all …]
H A Dxe_sync_types.h18 struct drm_syncobj *syncobj; member
/linux/drivers/gpu/drm/msm/
H A Dmsm_syncobj.c133 post_deps[i].syncobj = in msm_syncobj_parse_post_deps()
135 if (!post_deps[i].syncobj) { in msm_syncobj_parse_post_deps()
144 if (post_deps[j].syncobj) in msm_syncobj_parse_post_deps()
145 drm_syncobj_put(post_deps[j].syncobj); in msm_syncobj_parse_post_deps()
163 drm_syncobj_add_point(post_deps[i].syncobj, in msm_syncobj_process_post_deps()
168 drm_syncobj_replace_fence(post_deps[i].syncobj, in msm_syncobj_process_post_deps()
H A Dmsm_gem_submit.c840 drm_syncobj_put(post_deps[i].syncobj); in msm_ioctl_gem_submit()
H A Dmsm_gem_vma.c1605 drm_syncobj_put(post_deps[i].syncobj); in msm_ioctl_vm_bind()
/linux/drivers/gpu/drm/imagination/
H A Dpvr_sync.c41 drm_syncobj_put(sig_sync->syncobj); in pvr_sync_signal_free()
82 sig_sync->syncobj = drm_syncobj_find(file, handle); in pvr_sync_signal_array_add()
83 if (!sig_sync->syncobj) { in pvr_sync_signal_array_add()
196 drm_syncobj_add_point(sig_sync->syncobj, sig_sync->chain, in pvr_sync_signal_array_push_fences()
200 drm_syncobj_replace_fence(sig_sync->syncobj, sig_sync->fence); in pvr_sync_signal_array_push_fences()
H A Dpvr_sync.h41 struct drm_syncobj *syncobj; member
/linux/drivers/gpu/drm/v3d/
H A Dv3d_submit.c260 drm_syncobj_replace_fence(se->out_syncs[i].syncobj, in v3d_attach_fences_and_unlock_reservation()
262 drm_syncobj_put(se->out_syncs[i].syncobj); in v3d_attach_fences_and_unlock_reservation()
320 drm_syncobj_put(se->out_syncs[i].syncobj); in v3d_put_multisync_post_deps()
353 se->out_syncs[i].syncobj = drm_syncobj_find(file_priv, in v3d_get_multisync_post_deps()
355 if (!se->out_syncs[i].syncobj) { in v3d_get_multisync_post_deps()
366 drm_syncobj_put(se->out_syncs[i].syncobj); in v3d_get_multisync_post_deps()
510 query_info->queries[i].syncobj = drm_syncobj_find(file_priv, in v3d_get_cpu_timestamp_query_params()
512 if (!query_info->queries[i].syncobj) { in v3d_get_cpu_timestamp_query_params()
562 query_info->queries[i].syncobj = drm_syncobj_find(file_priv, in v3d_get_cpu_reset_timestamp_params()
564 if (!query_info->queries[i].syncobj) { in v3d_get_cpu_reset_timestamp_params()
[all …]
/linux/drivers/gpu/drm/i915/gem/
H A Di915_gem_execbuffer.c239 struct drm_syncobj *syncobj; /* Use with ptr_mask_bits() */ member
2778 drm_syncobj_put(ptr_mask_bits(fences[n].syncobj, 2)); in __free_fence_array()
2828 struct drm_syncobj *syncobj; in add_timeline_fence_array() local
2843 syncobj = drm_syncobj_find(eb->file, user_fence.handle); in add_timeline_fence_array()
2844 if (!syncobj) { in add_timeline_fence_array()
2850 fence = drm_syncobj_fence_get(syncobj); in add_timeline_fence_array()
2856 drm_syncobj_put(syncobj); in add_timeline_fence_array()
2868 drm_syncobj_put(syncobj); in add_timeline_fence_array()
2878 drm_syncobj_put(syncobj); in add_timeline_fence_array()
2895 drm_syncobj_put(syncobj); in add_timeline_fence_array()
[all …]
H A Di915_gem_context.c1293 if (ctx->syncobj) in i915_gem_context_release_work()
1294 drm_syncobj_put(ctx->syncobj); in i915_gem_context_release_work()
1673 err = drm_syncobj_create(&ctx->syncobj, in i915_gem_create_context()
/linux/drivers/gpu/drm/virtio/
H A Dvirtgpu_submit.c23 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()
/linux/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_userq_fence.c471 struct drm_syncobj **syncobj = NULL; in amdgpu_userq_signal_ioctl() local
495 syncobj = kmalloc_array(num_syncobj_handles, sizeof(*syncobj), GFP_KERNEL); in amdgpu_userq_signal_ioctl()
496 if (!syncobj) { in amdgpu_userq_signal_ioctl()
502 syncobj[entry] = drm_syncobj_find(filp, syncobj_handles[entry]); in amdgpu_userq_signal_ioctl()
503 if (!syncobj[entry]) { in amdgpu_userq_signal_ioctl()
624 drm_syncobj_replace_fence(syncobj[i], fence); in amdgpu_userq_signal_ioctl()
645 if (syncobj[entry]) in amdgpu_userq_signal_ioctl()
646 drm_syncobj_put(syncobj[entry]); in amdgpu_userq_signal_ioctl()
647 kfree(syncobj); in amdgpu_userq_signal_ioctl()
H A Damdgpu_cs.c533 p->post_deps[i].syncobj = in amdgpu_cs_p2_syncobj_out()
535 if (!p->post_deps[i].syncobj) in amdgpu_cs_p2_syncobj_out()
574 dep->syncobj = drm_syncobj_find(p->filp, in amdgpu_cs_p2_syncobj_timeline_signal()
576 if (!dep->syncobj) { in amdgpu_cs_p2_syncobj_timeline_signal()
1272 drm_syncobj_add_point(p->post_deps[i].syncobj, in amdgpu_cs_post_dependencies()
1277 drm_syncobj_replace_fence(p->post_deps[i].syncobj, in amdgpu_cs_post_dependencies()
1395 drm_syncobj_put(parser->post_deps[i].syncobj); in amdgpu_cs_parser_fini()
1571 struct drm_syncobj *syncobj; in amdgpu_cs_fence_to_handle_ioctl() local
1584 r = drm_syncobj_create(&syncobj, 0, fence); in amdgpu_cs_fence_to_handle_ioctl()
1588 r = drm_syncobj_get_handle(filp, syncobj, &info->out.handle); in amdgpu_cs_fence_to_handle_ioctl()
[all …]
H A Damdgpu_cs.h44 struct drm_syncobj *syncobj; member
H A Damdgpu_gem.c91 struct drm_syncobj **syncobj, in amdgpu_gem_update_timeline_node() argument
98 *syncobj = drm_syncobj_find(filp, syncobj_handle); in amdgpu_gem_update_timeline_node()
99 if (!*syncobj) in amdgpu_gem_update_timeline_node()
108 drm_syncobj_put(*syncobj); in amdgpu_gem_update_timeline_node()
/linux/drivers/gpu/drm/tegra/
H A Dsubmit.c515 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()
/linux/drivers/accel/amdxdna/
H A Daie2_ctx.c93 fence = drm_syncobj_fence_get(hwctx->priv->syncobj); in aie2_cmd_get_out_fence()
510 struct drm_syncobj *syncobj; in aie2_ctx_syncobj_create() local
516 ret = drm_syncobj_create(&syncobj, 0, NULL); in aie2_ctx_syncobj_create()
521 ret = drm_syncobj_get_handle(filp, syncobj, &hdl); in aie2_ctx_syncobj_create()
523 drm_syncobj_put(syncobj); in aie2_ctx_syncobj_create()
527 hwctx->priv->syncobj = syncobj; in aie2_ctx_syncobj_create()
539 drm_syncobj_put(hwctx->priv->syncobj); in aie2_ctx_syncobj_destroy()
1040 drm_syncobj_add_point(hwctx->priv->syncobj, chain, job->out_fence, *seq); in aie2_cmd_submit()
H A Daie2_pci.h154 struct drm_syncobj *syncobj; member
/linux/drivers/gpu/drm/panthor/
H A Dpanthor_sched.c2171 struct panthor_syncobj_64b *syncobj; in group_term_post_processing() local
2193 syncobj = group->syncobjs->kmap + (i * sizeof(*syncobj)); in group_term_post_processing()
2194 syncobj->status = ~0; in group_term_post_processing()
2195 syncobj->seqno = atomic64_read(&queue->fence_ctx.seqno); in group_term_post_processing()
2583 } *syncobj; in panthor_queue_eval_syncwait() local
2587 syncobj = panthor_queue_get_syncwait_obj(group, queue); in panthor_queue_eval_syncwait()
2588 if (!syncobj) in panthor_queue_eval_syncwait()
2592 syncobj->sync64.seqno : in panthor_queue_eval_syncwait()
2593 syncobj->sync32.seqno; in panthor_queue_eval_syncwait()
3043 struct panthor_syncobj_64b *syncobj = NULL; in queue_check_job_completion() local
[all …]
H A Dpanthor_drv.c252 struct drm_syncobj *syncobj; member
364 drm_syncobj_put(sig_sync->syncobj); in panthor_sync_signal_free()
400 sig_sync->syncobj = drm_syncobj_find(ctx->file, handle); in panthor_submit_ctx_add_sync_signal()
401 if (!sig_sync->syncobj) { in panthor_submit_ctx_add_sync_signal()
582 drm_syncobj_add_point(sig_sync->syncobj, sig_sync->chain, in panthor_submit_ctx_push_fences()
586 drm_syncobj_replace_fence(sig_sync->syncobj, sig_sync->fence); in panthor_submit_ctx_push_fences()
/linux/Documentation/gpu/
H A Ddrm-vm-bind-async.rst19 * ``syncobj``: A container that abstracts synchronization objects. The
21 driver specific. A syncobj typically indicates the type of the
24 * ``in-syncobj``: Argument to a VM_BIND IOCTL, the VM_BIND operation waits
27 * ``out-syncobj``: Argument to a VM_BIND_IOCTL, the VM_BIND operation