Home
last modified time | relevance | path

Searched refs:fence (Results 1 – 25 of 361) sorted by relevance

12345678910>>...15

/linux/drivers/dma-buf/
H A Ddma-fence.c114 static const char *dma_fence_stub_get_name(struct dma_fence *fence) in dma_fence_stub_get_name() argument
159 struct dma_fence *fence; in dma_fence_allocate_private_stub() local
161 fence = kzalloc(sizeof(*fence), GFP_KERNEL); in dma_fence_allocate_private_stub()
162 if (fence == NULL) in dma_fence_allocate_private_stub()
165 dma_fence_init(fence, in dma_fence_allocate_private_stub()
171 &fence->flags); in dma_fence_allocate_private_stub()
173 dma_fence_signal_timestamp(fence, timestamp); in dma_fence_allocate_private_stub()
175 return fence; in dma_fence_allocate_private_stub()
367 int dma_fence_signal_timestamp_locked(struct dma_fence *fence, in dma_fence_signal_timestamp_locked() argument
373 lockdep_assert_held(fence->lock); in dma_fence_signal_timestamp_locked()
[all …]
H A Dsync_file.c65 struct sync_file *sync_file_create(struct dma_fence *fence) in sync_file_create() argument
73 sync_file->fence = dma_fence_get(fence); in sync_file_create()
106 struct dma_fence *fence; in sync_file_get_fence() local
112 fence = dma_fence_get(sync_file->fence); in sync_file_get_fence()
115 return fence; in sync_file_get_fence()
137 struct dma_fence *fence = sync_file->fence; in sync_file_get_name() local
140 fence->ops->get_driver_name(fence), in sync_file_get_name()
141 fence->ops->get_timeline_name(fence), in sync_file_get_name()
142 fence->context, in sync_file_get_name()
143 fence->seqno); in sync_file_get_name()
[all …]
H A Ddma-fence-chain.c12 static bool dma_fence_chain_enable_signaling(struct dma_fence *fence);
39 struct dma_fence *dma_fence_chain_walk(struct dma_fence *fence) in dma_fence_chain_walk() argument
44 chain = to_dma_fence_chain(fence); in dma_fence_chain_walk()
46 dma_fence_put(fence); in dma_fence_chain_walk()
54 if (!dma_fence_is_signaled(prev_chain->fence)) in dma_fence_chain_walk()
74 dma_fence_put(fence); in dma_fence_chain_walk()
112 static const char *dma_fence_chain_get_driver_name(struct dma_fence *fence) in dma_fence_chain_get_driver_name() argument
117 static const char *dma_fence_chain_get_timeline_name(struct dma_fence *fence) in dma_fence_chain_get_timeline_name() argument
145 static bool dma_fence_chain_enable_signaling(struct dma_fence *fence) in dma_fence_chain_enable_signaling() argument
147 struct dma_fence_chain *head = to_dma_fence_chain(fence); in dma_fence_chain_enable_signaling()
[all …]
H A Ddma-resv.c71 struct dma_resv *resv, struct dma_fence **fence, in dma_resv_list_entry() argument
78 *fence = (struct dma_fence *)(tmp & ~DMA_RESV_LIST_MASK); in dma_resv_list_entry()
86 struct dma_fence *fence, in dma_resv_list_set() argument
89 long tmp = ((long)fence) | usage; in dma_resv_list_set()
126 struct dma_fence *fence; in dma_resv_list_free() local
128 dma_resv_list_entry(list, i, NULL, &fence, NULL); in dma_resv_list_free()
129 dma_fence_put(fence); in dma_resv_list_free()
217 struct dma_fence *fence; in dma_resv_reserve_fences() local
219 dma_resv_list_entry(old, i, obj, &fence, &usage); in dma_resv_reserve_fences()
220 if (dma_fence_is_signaled(fence)) in dma_resv_reserve_fences()
[all …]
H A Dst-dma-fence-chain.c62 struct dma_fence *fence, in mock_chain() argument
71 dma_fence_chain_init(f, dma_fence_get(prev), dma_fence_get(fence), in mock_chain()
184 struct dma_fence *fence; in find_seqno() local
192 fence = dma_fence_get(fc.tail); in find_seqno()
193 err = dma_fence_chain_find_seqno(&fence, 0); in find_seqno()
194 dma_fence_put(fence); in find_seqno()
201 fence = dma_fence_get(fc.tail); in find_seqno()
202 err = dma_fence_chain_find_seqno(&fence, i + 1); in find_seqno()
203 dma_fence_put(fence); in find_seqno()
209 if (fence != fc.chains[i]) { in find_seqno()
[all …]
H A Dsw_sync.c52 __s32 fence; /* fd of new fence */ member
85 static inline struct sync_pt *dma_fence_to_sync_pt(struct dma_fence *fence) in dma_fence_to_sync_pt() argument
87 if (fence->ops != &timeline_fence_ops) in dma_fence_to_sync_pt()
89 return container_of(fence, struct sync_pt, base); in dma_fence_to_sync_pt()
140 static const char *timeline_fence_get_driver_name(struct dma_fence *fence) in timeline_fence_get_driver_name() argument
145 static const char *timeline_fence_get_timeline_name(struct dma_fence *fence) in timeline_fence_get_timeline_name() argument
147 struct sync_timeline *parent = dma_fence_parent(fence); in timeline_fence_get_timeline_name()
152 static void timeline_fence_release(struct dma_fence *fence) in timeline_fence_release() argument
154 struct sync_pt *pt = dma_fence_to_sync_pt(fence); in timeline_fence_release()
155 struct sync_timeline *parent = dma_fence_parent(fence); in timeline_fence_release()
[all …]
/linux/drivers/gpu/drm/i915/
H A Di915_sw_fence.c49 static inline void debug_fence_init(struct i915_sw_fence *fence) in debug_fence_init() argument
51 debug_object_init(fence, &i915_sw_fence_debug_descr); in debug_fence_init()
54 static inline __maybe_unused void debug_fence_init_onstack(struct i915_sw_fence *fence) in debug_fence_init_onstack() argument
56 debug_object_init_on_stack(fence, &i915_sw_fence_debug_descr); in debug_fence_init_onstack()
59 static inline void debug_fence_activate(struct i915_sw_fence *fence) in debug_fence_activate() argument
61 debug_object_activate(fence, &i915_sw_fence_debug_descr); in debug_fence_activate()
64 static inline void debug_fence_set_state(struct i915_sw_fence *fence, in debug_fence_set_state() argument
67 debug_object_active_state(fence, &i915_sw_fence_debug_descr, old, new); in debug_fence_set_state()
70 static inline void debug_fence_deactivate(struct i915_sw_fence *fence) in debug_fence_deactivate() argument
72 debug_object_deactivate(fence, &i915_sw_fence_debug_descr); in debug_fence_deactivate()
[all …]
H A Di915_sw_fence.h42 void __i915_sw_fence_init(struct i915_sw_fence *fence,
47 #define i915_sw_fence_init(fence, fn) \ argument
52 __i915_sw_fence_init((fence), (fn), #fence, &__key); \
55 #define i915_sw_fence_init(fence, fn) \ argument
58 __i915_sw_fence_init((fence), (fn), NULL, NULL); \
62 void i915_sw_fence_reinit(struct i915_sw_fence *fence);
65 void i915_sw_fence_fini(struct i915_sw_fence *fence);
67 static inline void i915_sw_fence_fini(struct i915_sw_fence *fence) {} in i915_sw_fence_fini() argument
70 void i915_sw_fence_commit(struct i915_sw_fence *fence);
72 int i915_sw_fence_await_sw_fence(struct i915_sw_fence *fence,
[all …]
H A Di915_request.c54 struct i915_sw_fence *fence; member
60 static const char *i915_fence_get_driver_name(struct dma_fence *fence) in i915_fence_get_driver_name() argument
62 return dev_name(to_request(fence)->i915->drm.dev); in i915_fence_get_driver_name()
65 static const char *i915_fence_get_timeline_name(struct dma_fence *fence) in i915_fence_get_timeline_name() argument
78 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in i915_fence_get_timeline_name()
81 ctx = i915_request_gem_context(to_request(fence)); in i915_fence_get_timeline_name()
88 static bool i915_fence_signaled(struct dma_fence *fence) in i915_fence_signaled() argument
90 return i915_request_completed(to_request(fence)); in i915_fence_signaled()
93 static bool i915_fence_enable_signaling(struct dma_fence *fence) in i915_fence_enable_signaling() argument
95 return i915_request_enable_breadcrumb(to_request(fence)); in i915_fence_enable_signaling()
[all …]
/linux/include/linux/
H A Ddma-fence.h106 typedef void (*dma_fence_func_t)(struct dma_fence *fence,
144 const char * (*get_driver_name)(struct dma_fence *fence);
156 const char * (*get_timeline_name)(struct dma_fence *fence);
193 bool (*enable_signaling)(struct dma_fence *fence);
210 bool (*signaled)(struct dma_fence *fence);
228 signed long (*wait)(struct dma_fence *fence,
239 void (*release)(struct dma_fence *fence);
249 void (*fence_value_str)(struct dma_fence *fence, char *str, int size);
259 void (*timeline_value_str)(struct dma_fence *fence,
280 void (*set_deadline)(struct dma_fence *fence, ktime_t deadline);
[all …]
/linux/drivers/gpu/drm/nouveau/
H A Dnouveau_fence.c42 from_fence(struct dma_fence *fence) in from_fence() argument
44 return container_of(fence, struct nouveau_fence, base); in from_fence()
48 nouveau_fctx(struct nouveau_fence *fence) in nouveau_fctx() argument
50 return container_of(fence->base.lock, struct nouveau_fence_chan, lock); in nouveau_fctx()
54 nouveau_fence_signal(struct nouveau_fence *fence) in nouveau_fence_signal() argument
58 dma_fence_signal_locked(&fence->base); in nouveau_fence_signal()
59 list_del(&fence->head); in nouveau_fence_signal()
60 rcu_assign_pointer(fence->channel, NULL); in nouveau_fence_signal()
62 if (test_bit(DMA_FENCE_FLAG_USER_BITS, &fence->base.flags)) { in nouveau_fence_signal()
63 struct nouveau_fence_chan *fctx = nouveau_fctx(fence); in nouveau_fence_signal()
[all …]
/linux/drivers/gpu/drm/scheduler/
H A Dsched_fence.c50 struct dma_fence *fence) in drm_sched_fence_set_parent() argument
57 smp_store_release(&s_fence->parent, dma_fence_get(fence)); in drm_sched_fence_set_parent()
60 dma_fence_set_deadline(fence, s_fence->deadline); in drm_sched_fence_set_parent()
63 void drm_sched_fence_scheduled(struct drm_sched_fence *fence, in drm_sched_fence_scheduled() argument
73 drm_sched_fence_set_parent(fence, parent); in drm_sched_fence_scheduled()
75 dma_fence_signal(&fence->scheduled); in drm_sched_fence_scheduled()
78 void drm_sched_fence_finished(struct drm_sched_fence *fence, int result) in drm_sched_fence_finished() argument
81 dma_fence_set_error(&fence->finished, result); in drm_sched_fence_finished()
82 dma_fence_signal(&fence->finished); in drm_sched_fence_finished()
85 static const char *drm_sched_fence_get_driver_name(struct dma_fence *fence) in drm_sched_fence_get_driver_name() argument
[all …]
/linux/drivers/gpu/drm/vgem/
H A Dvgem_fence.c38 static const char *vgem_fence_get_driver_name(struct dma_fence *fence) in vgem_fence_get_driver_name() argument
43 static const char *vgem_fence_get_timeline_name(struct dma_fence *fence) in vgem_fence_get_timeline_name() argument
50 struct vgem_fence *fence = container_of(base, typeof(*fence), base); in vgem_fence_release() local
52 del_timer_sync(&fence->timer); in vgem_fence_release()
53 dma_fence_free(&fence->base); in vgem_fence_release()
56 static void vgem_fence_value_str(struct dma_fence *fence, char *str, int size) in vgem_fence_value_str() argument
58 snprintf(str, size, "%llu", fence->seqno); in vgem_fence_value_str()
61 static void vgem_fence_timeline_value_str(struct dma_fence *fence, char *str, in vgem_fence_timeline_value_str() argument
65 dma_fence_is_signaled(fence) ? fence->seqno : 0); in vgem_fence_timeline_value_str()
79 struct vgem_fence *fence = from_timer(fence, t, timer); in vgem_fence_timeout() local
[all …]
/linux/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_amdkfd_fence.c67 struct amdgpu_amdkfd_fence *fence; in amdgpu_amdkfd_fence_create() local
69 fence = kzalloc(sizeof(*fence), GFP_KERNEL); in amdgpu_amdkfd_fence_create()
70 if (fence == NULL) in amdgpu_amdkfd_fence_create()
75 fence->mm = mm; in amdgpu_amdkfd_fence_create()
76 get_task_comm(fence->timeline_name, current); in amdgpu_amdkfd_fence_create()
77 spin_lock_init(&fence->lock); in amdgpu_amdkfd_fence_create()
78 fence->svm_bo = svm_bo; in amdgpu_amdkfd_fence_create()
79 dma_fence_init(&fence->base, &amdkfd_fence_ops, &fence->lock, in amdgpu_amdkfd_fence_create()
82 return fence; in amdgpu_amdkfd_fence_create()
87 struct amdgpu_amdkfd_fence *fence; in to_amdgpu_amdkfd_fence() local
[all …]
/linux/include/trace/events/
H A Ddma_fence.h14 TP_PROTO(struct dma_fence *fence),
16 TP_ARGS(fence),
19 __string(driver, fence->ops->get_driver_name(fence))
20 __string(timeline, fence->ops->get_timeline_name(fence))
28 __entry->context = fence->context;
29 __entry->seqno = fence->seqno;
39 TP_PROTO(struct dma_fence *fence),
41 TP_ARGS(fence)
[all...]
/linux/drivers/gpu/drm/i915/selftests/
H A Dlib_sw_fence.c30 nop_fence_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state) in nop_fence_notify() argument
35 void __onstack_fence_init(struct i915_sw_fence *fence, in __onstack_fence_init() argument
39 debug_fence_init_onstack(fence); in __onstack_fence_init()
41 __init_waitqueue_head(&fence->wait, name, key); in __onstack_fence_init()
42 atomic_set(&fence->pending, 1); in __onstack_fence_init()
43 fence->error = 0; in __onstack_fence_init()
44 fence->fn = nop_fence_notify; in __onstack_fence_init()
47 void onstack_fence_fini(struct i915_sw_fence *fence) in onstack_fence_fini() argument
49 if (!fence->fn) in onstack_fence_fini()
52 i915_sw_fence_commit(fence); in onstack_fence_fini()
[all …]
/linux/drivers/gpu/drm/vmwgfx/
H A Dvmwgfx_fence.c51 struct vmw_fence_obj fence; member
71 struct vmw_fence_obj *fence; member
79 fman_from_fence(struct vmw_fence_obj *fence) in fman_from_fence() argument
81 return container_of(fence->base.lock, struct vmw_fence_manager, lock); in fman_from_fence()
124 struct vmw_fence_obj *fence = in vmw_fence_obj_destroy() local
126 struct vmw_fence_manager *fman = fman_from_fence(fence); in vmw_fence_obj_destroy()
128 if (!list_empty(&fence->head)) { in vmw_fence_obj_destroy()
130 list_del_init(&fence->head); in vmw_fence_obj_destroy()
133 fence->destroy(fence); in vmw_fence_obj_destroy()
148 struct vmw_fence_obj *fence = in vmw_fence_enable_signaling() local
[all …]
/linux/drivers/gpu/drm/xe/
H A Dxe_hw_fence.c45 struct xe_hw_fence *fence = in fence_free() local
48 if (!WARN_ON_ONCE(!fence)) in fence_free()
49 kmem_cache_free(xe_hw_fence_slab, fence); in fence_free()
55 struct xe_hw_fence *fence, *next; in hw_fence_irq_run_cb() local
61 list_for_each_entry_safe(fence, next, &irq->pending, irq_link) { in hw_fence_irq_run_cb()
62 struct dma_fence *dma_fence = &fence->dma; in hw_fence_irq_run_cb()
64 trace_xe_hw_fence_try_signal(fence); in hw_fence_irq_run_cb()
66 trace_xe_hw_fence_signal(fence); in hw_fence_irq_run_cb()
67 list_del_init(&fence->irq_link); in hw_fence_irq_run_cb()
86 struct xe_hw_fence *fence, *next; in xe_hw_fence_irq_finish() local
[all …]
H A Dxe_gt_tlb_invalidation.c41 __invalidation_fence_signal(struct xe_device *xe, struct xe_gt_tlb_invalidation_fence *fence) in __invalidation_fence_signal() argument
43 bool stack = test_bit(FENCE_STACK_BIT, &fence->base.flags); in __invalidation_fence_signal()
45 trace_xe_gt_tlb_invalidation_fence_signal(xe, fence); in __invalidation_fence_signal()
46 xe_gt_tlb_invalidation_fence_fini(fence); in __invalidation_fence_signal()
47 dma_fence_signal(&fence->base); in __invalidation_fence_signal()
49 dma_fence_put(&fence->base); in __invalidation_fence_signal()
53 invalidation_fence_signal(struct xe_device *xe, struct xe_gt_tlb_invalidation_fence *fence) in invalidation_fence_signal() argument
55 list_del(&fence->link); in invalidation_fence_signal()
56 __invalidation_fence_signal(xe, fence); in invalidation_fence_signal()
64 struct xe_gt_tlb_invalidation_fence *fence, *next; in xe_gt_tlb_fence_timeout() local
[all …]
H A Dxe_trace.h28 TP_PROTO(struct xe_device *xe, struct xe_gt_tlb_invalidation_fence *fence),
29 TP_ARGS(xe, fence),
33 __field(struct xe_gt_tlb_invalidation_fence *, fence)
39 __entry->fence = fence;
40 __entry->seqno = fence->seqno;
44 __get_str(dev), __entry->fence, __entry->seqno)
48 TP_PROTO(struct xe_device *xe, struct xe_gt_tlb_invalidation_fence *fence),
49 TP_ARGS(xe, fence)
54 TP_PROTO(struct xe_device *xe, struct xe_gt_tlb_invalidation_fence *fence),
55 TP_ARGS(xe, fence)
[all …]
/linux/drivers/gpu/drm/i915/gem/
H A Di915_gem_wait.c7 #include <linux/dma-fence-array.h>
8 #include <linux/dma-fence-chain.h>
18 i915_gem_object_wait_fence(struct dma_fence *fence, in i915_gem_object_wait_fence() argument
24 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in i915_gem_object_wait_fence()
27 if (dma_fence_is_i915(fence)) in i915_gem_object_wait_fence()
28 return i915_request_wait_timeout(to_request(fence), flags, timeout); in i915_gem_object_wait_fence()
30 return dma_fence_wait_timeout(fence, in i915_gem_object_wait_fence()
39 struct dma_fence *fence; in i915_gem_object_boost() local
48 * we only happen to look at the final fence in the sequence (because in i915_gem_object_boost()
59 dma_resv_for_each_fence_unlocked(&cursor, fence) in i915_gem_object_boost()
72 struct dma_fence *fence; i915_gem_object_wait_reservation() local
92 fence_set_priority(struct dma_fence * fence,const struct i915_sched_attr * attr) fence_set_priority() argument
110 __dma_fence_is_chain(const struct dma_fence * fence) __dma_fence_is_chain() argument
115 i915_gem_fence_wait_priority(struct dma_fence * fence,const struct i915_sched_attr * attr) i915_gem_fence_wait_priority() argument
153 struct dma_fence *fence; i915_gem_object_wait_priority() local
[all...]
/linux/drivers/gpu/drm/
H A Ddrm_syncobj.c217 struct dma_fence *fence; member
227 struct dma_fence *fence; member
268 struct dma_fence *fence; in drm_syncobj_fence_add_wait() local
270 if (wait->fence) in drm_syncobj_fence_add_wait()
278 fence = dma_fence_get(rcu_dereference_protected(syncobj->fence, 1)); in drm_syncobj_fence_add_wait()
279 if (!fence || dma_fence_chain_find_seqno(&fence, wait->point)) { in drm_syncobj_fence_add_wait()
280 dma_fence_put(fence); in drm_syncobj_fence_add_wait()
282 } else if (!fence) { in drm_syncobj_fence_add_wait()
283 wait->fence = dma_fence_get_stub(); in drm_syncobj_fence_add_wait()
285 wait->fence = fence; in drm_syncobj_fence_add_wait()
[all …]
/linux/drivers/gpu/host1x/
H A Dintr.c11 #include "fence.h"
15 struct host1x_syncpt_fence *fence) in host1x_intr_add_fence_to_list() argument
20 if ((s32)(fence_in_list->threshold - fence->threshold) <= 0) { in host1x_intr_add_fence_to_list()
22 list_add(&fence->list, &fence_in_list->list); in host1x_intr_add_fence_to_list()
28 list_add(&fence->list, &list->list); in host1x_intr_add_fence_to_list()
33 struct host1x_syncpt_fence *fence; in host1x_intr_update_hw_state() local
36 fence = list_first_entry(&sp->fences.list, struct host1x_syncpt_fence, list); in host1x_intr_update_hw_state()
38 host1x_hw_intr_set_syncpt_threshold(host, sp->id, fence->threshold); in host1x_intr_update_hw_state()
45 void host1x_intr_add_fence_locked(struct host1x *host, struct host1x_syncpt_fence *fence) in host1x_intr_add_fence_locked() argument
47 struct host1x_fence_list *fence_list = &fence in host1x_intr_add_fence_locked()
55 host1x_intr_remove_fence(struct host1x * host,struct host1x_syncpt_fence * fence) host1x_intr_remove_fence() argument
78 struct host1x_syncpt_fence *fence, *tmp; host1x_intr_handle_interrupt() local
[all...]
/linux/drivers/gpu/drm/radeon/
H A Dradeon_sync.c63 struct radeon_fence *fence) in radeon_sync_fence() argument
67 if (!fence) in radeon_sync_fence()
70 other = sync->sync_to[fence->ring]; in radeon_sync_fence()
71 sync->sync_to[fence->ring] = radeon_fence_later(fence, other); in radeon_sync_fence()
73 if (fence->is_vm_update) { in radeon_sync_fence()
75 sync->last_vm_update = radeon_fence_later(fence, other); in radeon_sync_fence()
95 struct radeon_fence *fence; in radeon_sync_resv() local
100 fence = to_radeon_fence(f); in radeon_sync_resv()
101 if (fence && fence->rdev == rdev) in radeon_sync_resv()
102 radeon_sync_fence(sync, fence); in radeon_sync_resv()
[all …]
/linux/drivers/gpu/drm/v3d/
H A Dv3d_fence.c8 struct v3d_fence *fence; in v3d_fence_create() local
10 fence = kzalloc(sizeof(*fence), GFP_KERNEL); in v3d_fence_create()
11 if (!fence) in v3d_fence_create()
14 fence->dev = &v3d->drm; in v3d_fence_create()
15 fence->queue = queue; in v3d_fence_create()
16 fence->seqno = ++v3d->queue[queue].emit_seqno; in v3d_fence_create()
17 dma_fence_init(&fence->base, &v3d_fence_ops, &v3d->job_lock, in v3d_fence_create()
18 v3d->queue[queue].fence_context, fence->seqno); in v3d_fence_create()
20 return &fence->base; in v3d_fence_create()
23 static const char *v3d_fence_get_driver_name(struct dma_fence *fence) in v3d_fence_get_driver_name() argument
[all …]

12345678910>>...15