Lines Matching refs:rq
56 #define RQ_TRACE(rq, fmt, ...) do { \ argument
57 const struct i915_request *rq__ = (rq); \
360 void __i915_request_skip(struct i915_request *rq);
361 bool i915_request_set_error_once(struct i915_request *rq, int error);
362 struct i915_request *i915_request_mark_eio(struct i915_request *rq);
365 void __i915_request_queue(struct i915_request *rq,
367 void __i915_request_queue_bh(struct i915_request *rq);
369 bool i915_request_retire(struct i915_request *rq);
370 void i915_request_retire_upto(struct i915_request *rq);
382 i915_request_get(struct i915_request *rq) in i915_request_get() argument
384 return to_request(dma_fence_get(&rq->fence)); in i915_request_get()
388 i915_request_get_rcu(struct i915_request *rq) in i915_request_get_rcu() argument
390 return to_request(dma_fence_get_rcu(&rq->fence)); in i915_request_get_rcu()
394 i915_request_put(struct i915_request *rq) in i915_request_put() argument
396 dma_fence_put(&rq->fence); in i915_request_put()
402 int i915_request_await_dma_fence(struct i915_request *rq,
404 int i915_request_await_execution(struct i915_request *rq,
407 void i915_request_add(struct i915_request *rq);
415 void i915_request_cancel(struct i915_request *rq, int error);
417 long i915_request_wait(struct i915_request *rq,
426 const struct i915_request *rq,
430 static inline bool i915_request_signaled(const struct i915_request *rq) in i915_request_signaled() argument
433 return test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &rq->fence.flags); in i915_request_signaled()
436 static inline bool i915_request_is_active(const struct i915_request *rq) in i915_request_is_active() argument
438 return test_bit(I915_FENCE_FLAG_ACTIVE, &rq->fence.flags); in i915_request_is_active()
441 static inline bool i915_request_in_priority_queue(const struct i915_request *rq) in i915_request_in_priority_queue() argument
443 return test_bit(I915_FENCE_FLAG_PQUEUE, &rq->fence.flags); in i915_request_in_priority_queue()
447 i915_request_has_initial_breadcrumb(const struct i915_request *rq) in i915_request_has_initial_breadcrumb() argument
449 return test_bit(I915_FENCE_FLAG_INITIAL_BREADCRUMB, &rq->fence.flags); in i915_request_has_initial_breadcrumb()
460 static inline u32 __hwsp_seqno(const struct i915_request *rq) in __hwsp_seqno() argument
462 const u32 *hwsp = READ_ONCE(rq->hwsp_seqno); in __hwsp_seqno()
480 static inline u32 hwsp_seqno(const struct i915_request *rq) in hwsp_seqno() argument
485 seqno = __hwsp_seqno(rq); in hwsp_seqno()
491 static inline bool __i915_request_has_started(const struct i915_request *rq) in __i915_request_has_started() argument
493 return i915_seqno_passed(__hwsp_seqno(rq), rq->fence.seqno - 1); in __i915_request_has_started()
522 static inline bool i915_request_started(const struct i915_request *rq) in i915_request_started() argument
526 if (i915_request_signaled(rq)) in i915_request_started()
531 if (likely(!i915_request_signaled(rq))) in i915_request_started()
533 result = __i915_request_has_started(rq); in i915_request_started()
547 static inline bool i915_request_is_running(const struct i915_request *rq) in i915_request_is_running() argument
551 if (!i915_request_is_active(rq)) in i915_request_is_running()
555 result = __i915_request_has_started(rq) && i915_request_is_active(rq); in i915_request_is_running()
577 static inline bool i915_request_is_ready(const struct i915_request *rq) in i915_request_is_ready() argument
579 return !list_empty(&rq->sched.link); in i915_request_is_ready()
582 static inline bool __i915_request_is_complete(const struct i915_request *rq) in __i915_request_is_complete() argument
584 return i915_seqno_passed(__hwsp_seqno(rq), rq->fence.seqno); in __i915_request_is_complete()
587 static inline bool i915_request_completed(const struct i915_request *rq) in i915_request_completed() argument
591 if (i915_request_signaled(rq)) in i915_request_completed()
596 if (likely(!i915_request_signaled(rq))) in i915_request_completed()
597 result = __i915_request_is_complete(rq); in i915_request_completed()
603 static inline void i915_request_mark_complete(struct i915_request *rq) in i915_request_mark_complete() argument
605 WRITE_ONCE(rq->hwsp_seqno, /* decouple from HWSP */ in i915_request_mark_complete()
606 (u32 *)&rq->fence.seqno); in i915_request_mark_complete()
609 static inline bool i915_request_has_waitboost(const struct i915_request *rq) in i915_request_has_waitboost() argument
611 return test_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags); in i915_request_has_waitboost()
614 static inline bool i915_request_has_nopreempt(const struct i915_request *rq) in i915_request_has_nopreempt() argument
617 return unlikely(test_bit(I915_FENCE_FLAG_NOPREEMPT, &rq->fence.flags)); in i915_request_has_nopreempt()
620 static inline bool i915_request_has_sentinel(const struct i915_request *rq) in i915_request_has_sentinel() argument
622 return unlikely(test_bit(I915_FENCE_FLAG_SENTINEL, &rq->fence.flags)); in i915_request_has_sentinel()
625 static inline bool i915_request_on_hold(const struct i915_request *rq) in i915_request_on_hold() argument
627 return unlikely(test_bit(I915_FENCE_FLAG_HOLD, &rq->fence.flags)); in i915_request_on_hold()
630 static inline void i915_request_set_hold(struct i915_request *rq) in i915_request_set_hold() argument
632 set_bit(I915_FENCE_FLAG_HOLD, &rq->fence.flags); in i915_request_set_hold()
635 static inline void i915_request_clear_hold(struct i915_request *rq) in i915_request_clear_hold() argument
637 clear_bit(I915_FENCE_FLAG_HOLD, &rq->fence.flags); in i915_request_clear_hold()
641 i915_request_timeline(const struct i915_request *rq) in i915_request_timeline() argument
644 return rcu_dereference_protected(rq->timeline, in i915_request_timeline()
645 lockdep_is_held(&rcu_access_pointer(rq->timeline)->mutex)); in i915_request_timeline()
649 i915_request_gem_context(const struct i915_request *rq) in i915_request_gem_context() argument
652 return rcu_dereference_protected(rq->context->gem_context, true); in i915_request_gem_context()
656 i915_request_active_timeline(const struct i915_request *rq) in i915_request_active_timeline() argument
663 return rcu_dereference_protected(rq->timeline, in i915_request_active_timeline()
664 lockdep_is_held(&rq->engine->sched_engine->lock)); in i915_request_active_timeline()
668 i915_request_active_seqno(const struct i915_request *rq) in i915_request_active_seqno() argument
671 page_mask_bits(i915_request_active_timeline(rq)->hwsp_offset); in i915_request_active_seqno()
672 u32 hwsp_relative_offset = offset_in_page(rq->hwsp_seqno); in i915_request_active_seqno()
689 i915_request_active_engine(struct i915_request *rq,
692 void i915_request_notify_execute_cb_imm(struct i915_request *rq);
702 enum i915_request_state i915_test_request_state(struct i915_request *rq);