/openbsd/sys/dev/pci/drm/i915/ |
H A D | i915_sw_fence.c | 131 return fence->fn(fence, state); in __i915_sw_fence_notify() 245 fence->fn = fn; in __i915_sw_fence_init() 247 fence->flags = 0; in __i915_sw_fence_init() 258 fence->error = 0; in i915_sw_fence_reinit() 379 wq->private = fence; in __i915_sw_fence_await_sw_fence() 433 fence = xchg(&cb->base.fence, NULL); in timer_i915_sw_fence_wake() 434 if (!fence) in timer_i915_sw_fence_wake() 454 fence = xchg(&cb->base.fence, NULL); in dma_i915_sw_fence_wake_timer() 455 if (fence) { in dma_i915_sw_fence_wake_timer() 507 cb->fence = fence; in i915_sw_fence_await_dma_fence() [all …]
|
H A D | i915_sw_fence.h | 42 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); \ 65 void i915_sw_fence_fini(struct i915_sw_fence *fence); 81 struct i915_sw_fence *fence; member 103 return atomic_read(&fence->pending) <= 0; in i915_sw_fence_signaled() 108 return atomic_read(&fence->pending) < 0; in i915_sw_fence_done() 113 wait_event(fence->wait, i915_sw_fence_done(fence)); in i915_sw_fence_wait() [all …]
|
H A D | i915_request.c | 1160 fence = NULL; in i915_request_await_start() 1190 fence = &prev->fence; in i915_request_await_start() 1193 if (!fence) in i915_request_await_start() 1199 fence, 0, in i915_request_await_start() 1503 fence = *child++; in i915_request_await_execution() 1507 if (fence->context == rq->fence.context) in i915_request_await_execution() 1605 fence = *child++; in i915_request_await_dma_fence() 1614 if (fence->context == rq->fence.context) in i915_request_await_dma_fence() 1620 fence)) in i915_request_await_dma_fence() 1636 fence); in i915_request_await_dma_fence() [all …]
|
H A D | i915_request.h | 67 rq__->fence.context, rq__->fence.seqno, \ 196 struct dma_fence fence; member 368 return fence->ops == &i915_fence_ops; in dma_fence_is_i915() 395 to_request(struct dma_fence *fence) in to_request() argument 399 GEM_BUG_ON(fence && !dma_fence_is_i915(fence)); in to_request() 400 return container_of(fence, struct i915_request, fence); in to_request() 406 return to_request(dma_fence_get(&rq->fence)); in i915_request_get() 418 dma_fence_put(&rq->fence); in i915_request_put() 425 struct dma_fence *fence); 428 struct dma_fence *fence); [all …]
|
H A D | i915_active.h | 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() 223 struct dma_fence *fence; in __i915_request_await_exclusive() local 226 fence = i915_active_fence_get(&active->excl); in __i915_request_await_exclusive() 227 if (fence) { in __i915_request_await_exclusive() [all …]
|
H A D | i915_active.c | 219 return cmpxchg(__active_fence_slot(active), fence, NULL) == fence; in active_fence_cb() 442 struct dma_fence *fence = &rq->fence; in i915_active_add_request() local 464 fence = __i915_active_fence_set(active, fence); in i915_active_add_request() 465 if (!fence) in i915_active_add_request() 483 RCU_INIT_POINTER(active->fence, fence); in __i915_active_set_fence() 574 if (!fence) in enable_signaling() 649 if (fence) { in __await_active() 767 return await_active(ref, flags, sw_await_fence, fence, fence); in i915_sw_fence_await_active() 1075 return fence; in __i915_active_fence_set() 1149 fence = __i915_active_fence_set(active, &rq->fence); in i915_active_fence_set() [all …]
|
H A D | i915_deps.c | 96 deps->fences[deps->num_deps++] = dma_fence_get(fence); in i915_deps_grow() 105 ret = dma_fence_wait(fence, ctx->interruptible); in i915_deps_grow() 109 ret = fence->error; in i915_deps_grow() 177 struct dma_fence *fence, in i915_deps_add_dependency() argument 183 if (!fence) in i915_deps_add_dependency() 186 if (dma_fence_is_signaled(fence)) { in i915_deps_add_dependency() 187 ret = fence->error; in i915_deps_add_dependency() 199 if (dma_fence_is_later(fence, entry)) { in i915_deps_add_dependency() 201 deps->fences[i] = dma_fence_get(fence); in i915_deps_add_dependency() 207 return i915_deps_grow(deps, fence, ctx); in i915_deps_add_dependency() [all …]
|
/openbsd/sys/dev/pci/drm/i915/gt/ |
H A D | intel_ggtt_fencing.c | 82 val = fence->start + fence->size - I965_FENCE_PAGE; in i965_write_fence_reg() 248 GEM_BUG_ON(old->fence != fence); in fence_update() 276 vma->fence = fence; in fence_update() 293 struct i915_fence_reg *fence = vma->fence; in i915_vma_revoke_fence() local 297 if (!fence) in i915_vma_revoke_fence() 326 return fence->vma && i915_vma_is_active(fence->vma); in fence_is_active() 335 GEM_BUG_ON(fence->vma && fence->vma->fence != fence); in fence_find() 352 return fence; in fence_find() 373 fence = vma->fence; in __i915_vma_pin_fence() 396 GEM_BUG_ON(vma->fence != (set ? fence : NULL)); in __i915_vma_pin_fence() [all …]
|
H A D | intel_breadcrumbs.c | 114 i915_seqno_passed(rq->fence.seqno, in check_signal_order() 120 rq->fence.seqno)) in check_signal_order() 135 fence->timestamp = timestamp; in __dma_fence_signal__timestamp() 137 trace_dma_fence_signaled(fence); in __dma_fence_signal__timestamp() 146 lockdep_assert_held(fence->lock); in __dma_fence_signal__notify() 150 cur->func(fence, cur); in __dma_fence_signal__notify() 218 &rq->fence.flags)) in signal_irq_work() 337 if (!__dma_fence_signal(&rq->fence)) in irq_signal_request() 387 if (i915_seqno_passed(rq->fence.seqno, it->fence.seqno)) in insert_breadcrumb() 471 &rq->fence.flags)) in intel_context_remove_breadcrumbs() [all …]
|
/openbsd/sys/dev/pci/drm/scheduler/ |
H A D | sched_fence.c | 63 struct dma_fence *fence) in drm_sched_fence_set_parent() argument 114 if (!WARN_ON_ONCE(!fence)) { in drm_sched_fence_free_rcu() 134 if (!WARN_ON_ONCE(fence->sched)) { in drm_sched_fence_free() 155 dma_fence_put(fence->parent); in drm_sched_fence_release_scheduled() 170 dma_fence_put(&fence->scheduled); in drm_sched_fence_release_finished() 189 fence->deadline = deadline; in drm_sched_fence_set_deadline_finished() 239 if (fence == NULL) in drm_sched_fence_alloc() 242 fence->owner = owner; in drm_sched_fence_alloc() 243 mtx_init(&fence->lock, IPL_TTY); in drm_sched_fence_alloc() 245 return fence; in drm_sched_fence_alloc() [all …]
|
H A D | gpu_scheduler_trace.h | 40 __field(struct dma_fence *, fence) 58 __entry->fence, __get_str(name), 74 TP_ARGS(fence), 76 __field(struct dma_fence *, fence) 80 __entry->fence = &fence->finished; 87 TP_ARGS(sched_job, fence), 91 __field(struct dma_fence *, fence) 99 __entry->fence = fence; 100 __entry->ctx = fence->context; 101 __entry->seqno = fence->seqno; [all …]
|
H A D | sched_main.c | 543 if (fence) { in drm_sched_start() 587 struct dma_fence *fence; in drm_sched_resubmit_jobs() local 603 if (IS_ERR(fence)) in drm_sched_resubmit_jobs() 612 dma_fence_put(fence); in drm_sched_resubmit_jobs() 713 if (!fence) in drm_sched_job_add_dependency() 728 dma_fence_put(fence); in drm_sched_job_add_dependency() 735 dma_fence_put(fence); in drm_sched_job_add_dependency() 793 dma_fence_get(fence); in drm_sched_job_add_resv_dependencies() 796 dma_fence_put(fence); in drm_sched_job_add_resv_dependencies() 857 dma_fence_put(fence); in drm_sched_job_cleanup() [all …]
|
/openbsd/sys/dev/pci/drm/amd/amdgpu/ |
H A D | amdgpu_amdkfd_fence.c | 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() 79 dma_fence_init(&fence->base, &amdkfd_fence_ops, &fence->lock, in amdgpu_amdkfd_fence_create() 82 return fence; in amdgpu_amdkfd_fence_create() 94 return fence; in to_amdgpu_amdkfd_fence() 123 if (!fence) in amdkfd_fence_enable_signaling() 154 if (WARN_ON(!fence)) in amdkfd_fence_release() 157 mmdrop(fence->mm); in amdkfd_fence_release() 175 if (!fence) in amdkfd_fence_check_mm() [all …]
|
H A D | amdgpu_fence.c | 179 fence->seqno = seq; in amdgpu_fence_emit() 181 dma_fence_get(fence); in amdgpu_fence_emit() 188 dma_fence_get(fence); in amdgpu_fence_emit() 222 *f = fence; in amdgpu_fence_emit() 319 if (!fence) in amdgpu_fence_process() 323 dma_fence_put(fence); in amdgpu_fence_process() 366 if (!fence || !dma_fence_get_rcu(fence)) { in amdgpu_fence_wait_empty() 373 dma_fence_put(fence); in amdgpu_fence_wait_empty() 441 if (!fence) in amdgpu_fence_last_unsignaled_time_us() 465 if (!fence) in amdgpu_fence_update_start_timestamp() [all …]
|
/openbsd/sys/dev/pci/drm/i915/selftests/ |
H A D | lib_sw_fence.c | 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() 49 if (!fence->fn) in onstack_fence_fini() 52 i915_sw_fence_commit(fence); in onstack_fence_fini() 53 i915_sw_fence_fini(fence); in onstack_fence_fini() 85 struct i915_sw_fence fence; member 95 struct heap_fence *h = container_of(fence, typeof(*h), fence); in heap_fence_notify() 102 heap_fence_put(&h->fence); in heap_fence_notify() 119 return &h->fence; in heap_fence_create() [all …]
|
H A D | i915_sw_fence.c | 50 fence = kmalloc(sizeof(*fence), GFP_KERNEL); in alloc_fence() 51 if (!fence) in alloc_fence() 55 return fence; in alloc_fence() 61 kfree(fence); in free_fence() 86 fence = alloc_fence(); in test_self() 87 if (!fence) in test_self() 90 ret = __test_self(fence); in test_self() 92 free_fence(fence); in test_self() 656 if (!fence) in wrap_dma_fence() 662 free_fence(fence); in wrap_dma_fence() [all …]
|
/openbsd/sys/dev/pci/drm/radeon/ |
H A D | radeon_fence.c | 177 seq = atomic64_read(&fence->rdev->fence_drv[fence->ring].last_seq); in radeon_fence_check_signaled() 180 radeon_irq_kms_sw_irq_put(fence->rdev, fence->ring); in radeon_fence_check_signaled() 431 if (!fence) in radeon_fence_signaled() 434 if (radeon_fence_seq_signaled(fence->rdev, fence->seq, fence->ring)) { in radeon_fence_signaled() 550 seq[fence->ring] = fence->seq; in radeon_fence_wait_timeout() 692 return fence; in radeon_fence_ref() 706 *fence = NULL; in radeon_fence_unref() 754 if (!fence) { in radeon_fence_need_sync() 764 if (fence->seq <= fdrv->sync_seq[fence->ring]) { in radeon_fence_need_sync() 785 if (!fence) { in radeon_fence_note_sync() [all …]
|
H A D | radeon_sync.c | 63 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() 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() 181 radeon_fence_note_sync(fence, ring); in radeon_sync_rings() [all …]
|
/openbsd/sys/dev/pci/drm/i915/gem/ |
H A D | i915_gem_wait.c | 27 if (dma_fence_is_i915(fence)) 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 60 if (dma_fence_is_i915(fence) && in i915_gem_object_boost() 72 struct dma_fence *fence; in i915_gem_object_wait_reservation() local 98 if (dma_fence_is_signaled(fence) || !dma_fence_is_i915(fence)) in fence_set_priority() 101 rq = to_request(fence); in fence_set_priority() 118 if (dma_fence_is_signaled(fence)) in i915_gem_fence_wait_priority() 124 if (dma_fence_is_array(fence)) { in i915_gem_fence_wait_priority() 141 fence_set_priority(fence, attr); in i915_gem_fence_wait_priority() [all …]
|
H A D | i915_gem_busy.c | 61 if (dma_fence_is_array(fence)) { in __busy_set_if_active() 84 if (!dma_fence_is_i915(fence)) in __busy_set_if_active() 87 rq = to_request(fence); in __busy_set_if_active() 98 busy_check_reader(struct dma_fence *fence) in busy_check_reader() argument 104 busy_check_writer(struct dma_fence *fence) in busy_check_writer() argument 106 if (!fence) in busy_check_writer() 109 return __busy_set_if_active(fence, __busy_write_id); in busy_check_writer() 119 struct dma_fence *fence; in i915_gem_busy_ioctl() local 147 dma_resv_for_each_fence_unlocked(&cursor, fence) { in i915_gem_busy_ioctl() 153 args->busy |= busy_check_writer(fence); in i915_gem_busy_ioctl() [all …]
|
/openbsd/sys/dev/pci/drm/ |
H A D | drm_syncobj.c | 284 wait->fence = fence; in drm_syncobj_fence_add_wait() 379 if (fence) in drm_syncobj_replace_fence() 386 rcu_assign_pointer(syncobj->fence, fence); in drm_syncobj_replace_fence() 411 if (!fence) in drm_syncobj_assign_null_handle() 509 *fence = wait.fence; in drm_syncobj_find_fence() 578 if (fence) in drm_syncobj_create() 1071 fence = rcu_dereference_protected(syncobj->fence, in syncobj_wait_syncobj_func() 1080 wait->fence = fence; in syncobj_wait_syncobj_func() 1149 entries[i].fence = fence; in drm_syncobj_array_wait_timeout() 1184 fence = entries[i].fence; in drm_syncobj_array_wait_timeout() [all …]
|
H A D | dma-resv.c | 129 dma_fence_put(fence); in dma_resv_list_free() 239 dma_fence_put(fence); in dma_resv_reserve_fences() 287 dma_fence_get(fence); in dma_resv_add_fence() 388 cursor->fence = dma_fence_get_rcu(cursor->fence); in dma_resv_iter_walk_unlocked() 389 if (!cursor->fence) { in dma_resv_iter_walk_unlocked() 421 return cursor->fence; in dma_resv_iter_first_unlocked() 450 return cursor->fence; in dma_resv_iter_next_unlocked() 474 return fence; in dma_resv_iter_first() 502 return fence; in dma_resv_iter_next() 644 *fence = NULL; in dma_resv_get_singleton() [all …]
|
H A D | drm_linux.c | 1709 if (fence->ops && fence->ops->release) in dma_fence_release() 1710 fence->ops->release(fence); in dma_fence_release() 1792 if (fence->ops->signaled && fence->ops->signaled(fence)) { in dma_fence_is_signaled() 1806 if (fence->ops->signaled && fence->ops->signaled(fence)) { in dma_fence_is_signaled_locked() 1833 return fence->ops->wait(fence, intr, timeout); in dma_fence_wait_timeout() 1857 if (!fence->ops->enable_signaling(fence)) in dma_fence_enable_sw_signaling() 1899 if (!fence->ops->enable_signaling(fence)) { in dma_fence_add_callback() 1975 if (!fence->ops->enable_signaling(fence)) { in dma_fence_default_wait() 2305 chain->fence = fence; in dma_fence_chain_init() 2394 dma_fence_chain_for_each(fence, fence) { in dma_fence_chain_signaled() [all …]
|
/openbsd/sys/dev/pci/drm/include/linux/ |
H A D | dma-resv.h | 202 struct dma_fence *fence; member 237 cursor->fence = NULL; in dma_resv_iter_begin() 249 dma_fence_put(cursor->fence); in dma_resv_iter_end() 290 #define dma_resv_for_each_fence_unlocked(cursor, fence) \ argument 291 for (fence = dma_resv_iter_first_unlocked(cursor); \ 292 fence; fence = dma_resv_iter_next_unlocked(cursor)) 307 #define dma_resv_for_each_fence(cursor, obj, usage, fence) \ argument 309 fence = dma_resv_iter_first(cursor); fence; \ 310 fence = dma_resv_iter_next(cursor)) 474 struct dma_fence *fence, [all …]
|
/openbsd/sys/dev/pci/drm/include/drm/ |
H A D | drm_syncobj.h | 51 struct dma_fence __rcu *fence; member 109 struct dma_fence *fence; in drm_syncobj_fence_get() local 112 fence = dma_fence_get_rcu_safe(&syncobj->fence); in drm_syncobj_fence_get() 115 return fence; in drm_syncobj_fence_get() 122 struct dma_fence *fence, 125 struct dma_fence *fence); 128 struct dma_fence **fence); 131 struct dma_fence *fence);
|