Lines Matching refs:fence

44 	struct i915_sw_fence *fence;  member
56 static const char *i915_fence_get_driver_name(struct dma_fence *fence) in i915_fence_get_driver_name() argument
61 static const char *i915_fence_get_timeline_name(struct dma_fence *fence) in i915_fence_get_timeline_name() argument
72 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in i915_fence_get_timeline_name()
75 return to_request(fence)->gem_context->name ?: "[i915]"; in i915_fence_get_timeline_name()
78 static bool i915_fence_signaled(struct dma_fence *fence) in i915_fence_signaled() argument
80 return i915_request_completed(to_request(fence)); in i915_fence_signaled()
83 static bool i915_fence_enable_signaling(struct dma_fence *fence) in i915_fence_enable_signaling() argument
85 return i915_request_enable_breadcrumb(to_request(fence)); in i915_fence_enable_signaling()
88 static signed long i915_fence_wait(struct dma_fence *fence, in i915_fence_wait() argument
92 return i915_request_wait(to_request(fence), in i915_fence_wait()
97 static void i915_fence_release(struct dma_fence *fence) in i915_fence_release() argument
99 struct i915_request *rq = to_request(fence); in i915_fence_release()
127 i915_sw_fence_complete(cb->fence); in irq_execute_cb()
135 cb->hook(container_of(cb->fence, struct i915_request, submit), in irq_execute_cb_hook()
136 &cb->signal->fence); in irq_execute_cb_hook()
228 rq->fence.context, rq->fence.seqno, in i915_request_retire()
288 dma_fence_signal_locked(&rq->fence); in i915_request_retire()
289 if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &rq->fence.flags)) in i915_request_retire()
295 if (!test_bit(I915_FENCE_FLAG_ACTIVE, &rq->fence.flags)) { in i915_request_retire()
296 set_bit(I915_FENCE_FLAG_ACTIVE, &rq->fence.flags); in i915_request_retire()
324 rq->fence.context, rq->fence.seqno, in i915_request_retire_upto()
346 hook(rq, &signal->fence); in __i915_request_await_execution()
354 cb->fence = &rq->submit; in __i915_request_await_execution()
355 i915_sw_fence_await(cb->fence); in __i915_request_await_execution()
367 hook(rq, &signal->fence); in __i915_request_await_execution()
370 i915_sw_fence_complete(cb->fence); in __i915_request_await_execution()
387 request->fence.context, request->fence.seqno, in __i915_request_submit()
445 if (!test_and_set_bit(I915_FENCE_FLAG_ACTIVE, &request->fence.flags)) in __i915_request_submit()
448 if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &request->fence.flags) && in __i915_request_submit()
449 !test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &request->fence.flags) && in __i915_request_submit()
479 request->fence.context, request->fence.seqno, in __i915_request_unsubmit()
493 if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &request->fence.flags)) in __i915_request_unsubmit()
496 GEM_BUG_ON(!test_bit(I915_FENCE_FLAG_ACTIVE, &request->fence.flags)); in __i915_request_unsubmit()
497 clear_bit(I915_FENCE_FLAG_ACTIVE, &request->fence.flags); in __i915_request_unsubmit()
530 submit_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state) in submit_notify() argument
533 container_of(fence, typeof(*request), submit); in submit_notify()
539 if (unlikely(fence->error)) in submit_notify()
540 i915_request_skip(request, fence->error); in submit_notify()
564 semaphore_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state) in semaphore_notify() argument
567 container_of(fence, typeof(*request), semaphore); in semaphore_notify()
689 dma_fence_init(&rq->fence, &i915_fence_ops, &rq->lock, in __i915_request_create()
793 if (intel_timeline_sync_is_later(rq->timeline, &signal->fence)) in i915_request_await_start()
797 &signal->fence, 0, in i915_request_await_start()
834 &from->fence, 0, in emit_semaphore_wait()
867 *cs++ = from->fence.seqno; in emit_semaphore_wait()
903 &from->fence, 0, in i915_request_await_request()
911 &from->fence, 0, in i915_request_await_request()
921 i915_request_await_dma_fence(struct i915_request *rq, struct dma_fence *fence) in i915_request_await_dma_fence() argument
923 struct dma_fence **child = &fence; in i915_request_await_dma_fence()
935 if (dma_fence_is_array(fence)) { in i915_request_await_dma_fence()
936 struct dma_fence_array *array = to_dma_fence_array(fence); in i915_request_await_dma_fence()
944 fence = *child++; in i915_request_await_dma_fence()
945 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in i915_request_await_dma_fence()
953 if (fence->context == rq->fence.context) in i915_request_await_dma_fence()
957 if (fence->context && in i915_request_await_dma_fence()
958 intel_timeline_sync_is_later(rq->timeline, fence)) in i915_request_await_dma_fence()
961 if (dma_fence_is_i915(fence)) in i915_request_await_dma_fence()
962 ret = i915_request_await_request(rq, to_request(fence)); in i915_request_await_dma_fence()
964 ret = i915_sw_fence_await_dma_fence(&rq->submit, fence, in i915_request_await_dma_fence()
971 if (fence->context) in i915_request_await_dma_fence()
972 intel_timeline_sync_set(rq->timeline, fence); in i915_request_await_dma_fence()
980 struct dma_fence *fence, in i915_request_await_execution() argument
984 struct dma_fence **child = &fence; in i915_request_await_execution()
988 if (dma_fence_is_array(fence)) { in i915_request_await_execution()
989 struct dma_fence_array *array = to_dma_fence_array(fence); in i915_request_await_execution()
999 fence = *child++; in i915_request_await_execution()
1000 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in i915_request_await_execution()
1008 if (dma_fence_is_i915(fence)) in i915_request_await_execution()
1010 to_request(fence), in i915_request_await_execution()
1014 ret = i915_sw_fence_await_dma_fence(&rq->submit, fence, in i915_request_await_execution()
1092 dma_fence_set_error(&rq->fence, error); in i915_request_skip()
1146 &prev->fence, in __i915_request_add_to_timeline()
1162 GEM_BUG_ON(timeline->seqno != rq->fence.seqno); in __i915_request_add_to_timeline()
1180 engine->name, rq->fence.context, rq->fence.seqno); in __i915_request_commit()
1373 static void request_wait_wake(struct dma_fence *fence, struct dma_fence_cb *cb) in request_wait_wake() argument
1406 if (dma_fence_is_signaled(&rq->fence)) in i915_request_wait()
1447 dma_fence_signal(&rq->fence); in i915_request_wait()
1470 if (dma_fence_add_callback(&rq->fence, &wait.cb, request_wait_wake)) in i915_request_wait()
1477 dma_fence_signal(&rq->fence); in i915_request_wait()
1495 dma_fence_remove_callback(&rq->fence, &wait.cb); in i915_request_wait()