Home
last modified time | relevance | path

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

12345678910>>...13

/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
157 struct dma_fence *fence; in dma_fence_allocate_private_stub() local
159 fence = kzalloc_obj(*fence); in dma_fence_allocate_private_stub()
160 if (fence == NULL) in dma_fence_allocate_private_stub()
163 dma_fence_init(fence, in dma_fence_allocate_private_stub()
169 &fence->flags); in dma_fence_allocate_private_stub()
171 dma_fence_signal_timestamp(fence, timestamp); in dma_fence_allocate_private_stub()
173 return fence; in dma_fence_allocate_private_stub()
362 void dma_fence_signal_timestamp_locked(struct dma_fence *fence, in dma_fence_signal_timestamp_locked() argument
368 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
142 driver = dma_fence_driver_name(fence); in sync_file_get_name()
143 timeline = dma_fence_timeline_name(fence); in sync_file_get_name()
147 fence->context, in sync_file_get_name()
148 fence->seqno); in sync_file_get_name()
[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()
182 struct dma_fence *fence; in find_seqno() local
190 fence = dma_fence_get(fc.tail); in find_seqno()
191 err = dma_fence_chain_find_seqno(&fence, 0); in find_seqno()
192 dma_fence_put(fence); in find_seqno()
199 fence = dma_fence_get(fc.tail); in find_seqno()
200 err = dma_fence_chain_find_seqno(&fence, i + 1); in find_seqno()
201 dma_fence_put(fence); in find_seqno()
207 if (fence != fc.chains[i]) { in find_seqno()
[all …]
H A Dsw_sync.c53 __s32 fence; /* fd of new fence */ member
86 static inline struct sync_pt *dma_fence_to_sync_pt(struct dma_fence *fence) in dma_fence_to_sync_pt() argument
88 if (fence->ops != &timeline_fence_ops) in dma_fence_to_sync_pt()
90 return container_of(fence, struct sync_pt, base); in dma_fence_to_sync_pt()
141 static const char *timeline_fence_get_driver_name(struct dma_fence *fence) in timeline_fence_get_driver_name() argument
146 static const char *timeline_fence_get_timeline_name(struct dma_fence *fence) in timeline_fence_get_timeline_name() argument
148 struct sync_timeline *parent = dma_fence_parent(fence); in timeline_fence_get_timeline_name()
153 static void timeline_fence_release(struct dma_fence *fence) in timeline_fence_release() argument
155 struct sync_pt *pt = dma_fence_to_sync_pt(fence); in timeline_fence_release()
156 struct sync_timeline *parent = dma_fence_parent(fence); in timeline_fence_release()
[all …]
H A Dst-dma-fence-unwrap.c85 struct dma_fence *fence) in mock_chain() argument
92 dma_fence_put(fence); in mock_chain()
96 dma_fence_chain_init(f, prev, fence, 1); in mock_chain()
125 struct dma_fence *fence, *f1, *f2, *array; in unwrap_array() local
147 dma_fence_unwrap_for_each(fence, &iter, array) { in unwrap_array()
148 if (fence == f1) { in unwrap_array()
150 } else if (fence == f2) { in unwrap_array()
169 struct dma_fence *fence, *f1, *f2, *chain; in unwrap_chain() local
191 dma_fence_unwrap_for_each(fence, &iter, chain) { in unwrap_chain()
192 if (fence == f1) { in unwrap_chain()
[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_active.h48 void i915_active_noop(struct dma_fence *fence, struct dma_fence_cb *cb);
64 void *fence, in __i915_active_fence_init() argument
67 RCU_INIT_POINTER(active->fence, fence); in __i915_active_fence_init()
76 struct dma_fence *fence);
103 struct dma_fence *fence; in i915_active_fence_get() local
106 fence = dma_fence_get_rcu_safe(&active->fence); in i915_active_fence_get()
109 return fence; in i915_active_fence_get()
123 return rcu_access_pointer(active->fence); in i915_active_fence_isset()
178 int i915_sw_fence_await_active(struct i915_sw_fence *fence,
222 struct dma_fence *fence; in __i915_request_await_exclusive() local
[all …]
/linux/drivers/gpu/drm/i915/gt/
H A Dintel_ggtt_fencing.c51 static struct drm_i915_private *fence_to_i915(struct i915_fence_reg *fence) in fence_to_i915() argument
53 return fence->ggtt->vm.i915; in fence_to_i915()
56 static struct intel_uncore *fence_to_uncore(struct i915_fence_reg *fence) in fence_to_uncore() argument
58 return fence->ggtt->vm.gt->uncore; in fence_to_uncore()
61 static void i965_write_fence_reg(struct i915_fence_reg *fence) in i965_write_fence_reg() argument
67 if (GRAPHICS_VER(fence_to_i915(fence)) >= 6) { in i965_write_fence_reg()
68 fence_reg_lo = FENCE_REG_GEN6_LO(fence->id); in i965_write_fence_reg()
69 fence_reg_hi = FENCE_REG_GEN6_HI(fence->id); in i965_write_fence_reg()
73 fence_reg_lo = FENCE_REG_965_LO(fence->id); in i965_write_fence_reg()
74 fence_reg_hi = FENCE_REG_965_HI(fence->id); in i965_write_fence_reg()
[all …]
/linux/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_amdkfd_fence.c68 struct amdgpu_amdkfd_fence *fence; in amdgpu_amdkfd_fence_create() local
70 fence = kzalloc_obj(*fence); in amdgpu_amdkfd_fence_create()
71 if (fence == NULL) in amdgpu_amdkfd_fence_create()
76 fence->mm = mm; in amdgpu_amdkfd_fence_create()
77 get_task_comm(fence->timeline_name, current); in amdgpu_amdkfd_fence_create()
78 spin_lock_init(&fence->lock); in amdgpu_amdkfd_fence_create()
79 fence->svm_bo = svm_bo; in amdgpu_amdkfd_fence_create()
80 fence->context_id = context_id; in amdgpu_amdkfd_fence_create()
81 dma_fence_init(&fence->base, &amdkfd_fence_ops, &fence->lock, in amdgpu_amdkfd_fence_create()
84 return fence; in amdgpu_amdkfd_fence_create()
[all …]
H A Damdgpu_userq_fence.c155 struct dma_fence *fence; in amdgpu_userq_fence_driver_process() local
167 fence = &userq_fence->base; in amdgpu_userq_fence_driver_process()
169 if (rptr < fence->seqno) in amdgpu_userq_fence_driver_process()
172 dma_fence_signal(fence); in amdgpu_userq_fence_driver_process()
178 dma_fence_put(fence); in amdgpu_userq_fence_driver_process()
190 struct amdgpu_userq_fence *fence, *tmp; in amdgpu_userq_fence_driver_destroy() local
196 list_for_each_entry_safe(fence, tmp, &fence_drv->fences, link) { in amdgpu_userq_fence_driver_destroy()
197 f = &fence->base; in amdgpu_userq_fence_driver_destroy()
204 list_del(&fence->link); in amdgpu_userq_fence_driver_destroy()
241 struct dma_fence *fence; in amdgpu_userq_fence_create() local
[all …]
/linux/drivers/gpu/drm/nouveau/
H A Dnouveau_fence.c42 nouveau_fctx(struct nouveau_fence *fence) in nouveau_fctx() argument
44 return container_of(fence->base.lock, struct nouveau_fence_chan, lock); in nouveau_fctx()
48 nouveau_fence_signal(struct nouveau_fence *fence) in nouveau_fence_signal() argument
52 dma_fence_signal_locked(&fence->base); in nouveau_fence_signal()
53 list_del(&fence->head); in nouveau_fence_signal()
54 rcu_assign_pointer(fence->channel, NULL); in nouveau_fence_signal()
56 if (test_bit(DMA_FENCE_FLAG_USER_BITS, &fence->base.flags)) { in nouveau_fence_signal()
57 struct nouveau_fence_chan *fctx = nouveau_fctx(fence); in nouveau_fence_signal()
63 dma_fence_put(&fence->base); in nouveau_fence_signal()
68 nouveau_local_fence(struct dma_fence *fence, struct nouveau_drm *drm) in nouveau_local_fence() argument
[all …]
/linux/drivers/gpu/drm/vmwgfx/
H A Dvmwgfx_fence.c23 struct vmw_fence_obj fence; member
48 fman_from_fence(struct vmw_fence_obj *fence) in fman_from_fence() argument
50 return container_of(fence->base.lock, struct vmw_fence_manager, lock); in fman_from_fence()
55 struct vmw_fence_obj *fence = in vmw_fence_obj_destroy() local
57 struct vmw_fence_manager *fman = fman_from_fence(fence); in vmw_fence_obj_destroy()
59 if (!list_empty(&fence->head)) { in vmw_fence_obj_destroy()
72 list_del_init(&fence->head); in vmw_fence_obj_destroy()
73 if (fence->waiter_added) in vmw_fence_obj_destroy()
77 fence->destroy(fence); in vmw_fence_obj_destroy()
100 struct vmw_fence_obj *fence = in vmw_fence_enable_signaling() local
[all …]
/linux/drivers/gpu/drm/xe/
H A Dxe_tlb_inval.c32 static void xe_tlb_inval_fence_fini(struct xe_tlb_inval_fence *fence) in xe_tlb_inval_fence_fini() argument
34 if (WARN_ON_ONCE(!fence->tlb_inval)) in xe_tlb_inval_fence_fini()
37 xe_pm_runtime_put(fence->tlb_inval->xe); in xe_tlb_inval_fence_fini()
38 fence->tlb_inval = NULL; /* fini() should be called once */ in xe_tlb_inval_fence_fini()
42 xe_tlb_inval_fence_signal(struct xe_tlb_inval_fence *fence) in xe_tlb_inval_fence_signal() argument
44 bool stack = test_bit(FENCE_STACK_BIT, &fence->base.flags); in xe_tlb_inval_fence_signal()
46 lockdep_assert_held(&fence->tlb_inval->pending_lock); in xe_tlb_inval_fence_signal()
48 list_del(&fence->link); in xe_tlb_inval_fence_signal()
49 trace_xe_tlb_inval_fence_signal(fence->tlb_inval->xe, fence); in xe_tlb_inval_fence_signal()
50 xe_tlb_inval_fence_fini(fence); in xe_tlb_inval_fence_signal()
[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 timer_delete_sync(&fence->timer); in vgem_fence_release()
53 dma_fence_free(&fence->base); in vgem_fence_release()
64 struct vgem_fence *fence = timer_container_of(fence, t, timer); in vgem_fence_timeout() local
66 dma_fence_signal(&fence->base); in vgem_fence_timeout()
72 struct vgem_fence *fence; in vgem_fence_create() local
74 fence = kzalloc_obj(*fence); in vgem_fence_create()
75 if (!fence) in vgem_fence_create()
[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/radeon/
H A Dradeon_fence.c134 struct radeon_fence **fence, in radeon_fence_emit() argument
140 *fence = kmalloc_obj(struct radeon_fence); in radeon_fence_emit()
141 if ((*fence) == NULL) in radeon_fence_emit()
144 (*fence)->rdev = rdev; in radeon_fence_emit()
145 (*fence)->seq = seq = ++rdev->fence_drv[ring].sync_seq[ring]; in radeon_fence_emit()
146 (*fence)->ring = ring; in radeon_fence_emit()
147 (*fence)->is_vm_update = false; in radeon_fence_emit()
148 dma_fence_init(&(*fence)->base, &radeon_fence_ops, in radeon_fence_emit()
152 radeon_fence_ring_emit(rdev, ring, *fence); in radeon_fence_emit()
153 trace_radeon_fence_emit(rdev_to_drm(rdev), ring, (*fence)->seq); in radeon_fence_emit()
[all …]
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/
H A Ddrm_syncobj.c218 struct dma_fence *fence; member
228 struct dma_fence *fence; member
269 struct dma_fence *fence; in drm_syncobj_fence_add_wait() local
271 if (wait->fence) in drm_syncobj_fence_add_wait()
279 fence = dma_fence_get(rcu_dereference_protected(syncobj->fence, 1)); in drm_syncobj_fence_add_wait()
280 if (!fence || dma_fence_chain_find_seqno(&fence, wait->point)) { in drm_syncobj_fence_add_wait()
281 dma_fence_put(fence); in drm_syncobj_fence_add_wait()
283 } else if (!fence) { in drm_syncobj_fence_add_wait()
284 wait->fence = dma_fence_get_stub(); in drm_syncobj_fence_add_wait()
286 wait->fence = fence; in drm_syncobj_fence_add_wait()
[all …]
/linux/drivers/gpu/host1x/
H A Dintr.c15 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->sp->fences; in host1x_intr_add_fence_locked()
49 INIT_LIST_HEAD(&fence->list); in host1x_intr_add_fence_locked()
[all …]
/linux/drivers/gpu/drm/v3d/
H A Dv3d_fence.c9 struct v3d_fence *fence; in v3d_fence_create() local
11 fence = kzalloc_obj(*fence); in v3d_fence_create()
12 if (!fence) in v3d_fence_create()
15 fence->dev = &v3d->drm; in v3d_fence_create()
16 fence->queue = q; in v3d_fence_create()
17 fence->seqno = ++queue->emit_seqno; in v3d_fence_create()
18 dma_fence_init(&fence->base, &v3d_fence_ops, &queue->fence_lock, in v3d_fence_create()
19 queue->fence_context, fence->seqno); in v3d_fence_create()
21 return &fence->base; in v3d_fence_create()
24 static const char *v3d_fence_get_driver_name(struct dma_fence *fence) in v3d_fence_get_driver_name() argument
[all …]
/linux/tools/testing/selftests/sync/
H A Dsync_stress_consumer.c40 static int busy_wait_on_fence(int fence) in busy_wait_on_fence() argument
45 error = sync_fence_count_with_status(fence, FENCE_STATUS_ERROR); in busy_wait_on_fence()
47 active = sync_fence_count_with_status(fence, in busy_wait_on_fence()
66 int fence, valid, i; in mpsc_producer_thread() local
72 fence = sw_sync_fence_create(consumer_timeline, "fence", i); in mpsc_producer_thread()
73 valid = sw_sync_fence_is_valid(fence); in mpsc_producer_thread()
82 ASSERT(sync_wait(fence, -1) > 0, in mpsc_producer_thread()
85 ASSERT(busy_wait_on_fence(fence) == 0, in mpsc_producer_thread()
100 sw_sync_fence_destroy(fence); in mpsc_producer_thread()
108 int fence, merged, tmp, valid, it, i; in mpcs_consumer_thread() local
[all …]
/linux/drivers/gpu/drm/virtio/
H A Dvirtgpu_fence.c64 struct virtio_gpu_fence *fence = kzalloc_obj(struct virtio_gpu_fence); in virtio_gpu_fence_alloc() local
66 if (!fence) in virtio_gpu_fence_alloc()
67 return fence; in virtio_gpu_fence_alloc()
69 fence->drv = drv; in virtio_gpu_fence_alloc()
70 fence->ring_idx = ring_idx; in virtio_gpu_fence_alloc()
71 fence->emit_fence_info = !(base_fence_ctx == drv->context); in virtio_gpu_fence_alloc()
78 dma_fence_init(&fence->f, &virtio_gpu_fence_ops, &drv->lock, in virtio_gpu_fence_alloc()
81 return fence; in virtio_gpu_fence_alloc()
86 struct virtio_gpu_fence *fence) in virtio_gpu_fence_emit() argument
92 fence->fence_id = fence->f.seqno = ++drv->current_fence_id; in virtio_gpu_fence_emit()
[all …]
/linux/drivers/gpu/drm/msm/
H A Dmsm_fence.c82 bool msm_fence_completed(struct msm_fence_context *fctx, uint32_t fence) in msm_fence_completed() argument
88 return (int32_t)(fctx->completed_fence - fence) >= 0 || in msm_fence_completed()
89 (int32_t)(*fctx->fenceptr - fence) >= 0; in msm_fence_completed()
93 void msm_update_fence(struct msm_fence_context *fctx, uint32_t fence) in msm_update_fence() argument
98 if (fence_after(fence, fctx->completed_fence)) in msm_update_fence()
99 fctx->completed_fence = fence; in msm_update_fence()
110 static inline struct msm_fence *to_msm_fence(struct dma_fence *fence) in to_msm_fence() argument
112 return container_of(fence, struct msm_fence, base); in to_msm_fence()
115 static const char *msm_fence_get_driver_name(struct dma_fence *fence) in msm_fence_get_driver_name() argument
120 static const char *msm_fence_get_timeline_name(struct dma_fence *fence) in msm_fence_get_timeline_name() argument
[all …]

12345678910>>...13