Lines Matching refs:rq

77 		       const struct i915_request *rq)  in hws_address()  argument
79 return hws->node.start + seqno_offset(rq->fence.context); in hws_address()
83 struct i915_request *rq, in emit_recurse_batch() argument
86 struct i915_address_space *vm = &rq->gem_context->ppgtt->vm; in emit_recurse_batch()
107 err = i915_vma_move_to_active(vma, rq, 0); in emit_recurse_batch()
116 err = i915_vma_move_to_active(hws, rq, 0); in emit_recurse_batch()
128 *batch++ = lower_32_bits(hws_address(hws, rq)); in emit_recurse_batch()
129 *batch++ = upper_32_bits(hws_address(hws, rq)); in emit_recurse_batch()
130 *batch++ = rq->fence.seqno; in emit_recurse_batch()
141 err = rq->engine->emit_bb_start(rq, vma->node.start, PAGE_SIZE, 0); in emit_recurse_batch()
156 struct i915_request *rq; in spinner_create_request() local
159 rq = i915_request_alloc(engine, ctx); in spinner_create_request()
160 if (IS_ERR(rq)) in spinner_create_request()
161 return rq; in spinner_create_request()
163 err = emit_recurse_batch(spin, rq, arbitration_command); in spinner_create_request()
165 i915_request_add(rq); in spinner_create_request()
169 return rq; in spinner_create_request()
172 static u32 hws_seqno(const struct spinner *spin, const struct i915_request *rq) in hws_seqno() argument
174 u32 *seqno = spin->seqno + seqno_offset(rq->fence.context); in hws_seqno()
196 static bool wait_for_spinner(struct spinner *spin, struct i915_request *rq) in wait_for_spinner() argument
198 if (!wait_event_timeout(rq->execute, in wait_for_spinner()
199 READ_ONCE(rq->global_seqno), in wait_for_spinner()
203 return !(wait_for_us(i915_seqno_passed(hws_seqno(spin, rq), in wait_for_spinner()
204 rq->fence.seqno), in wait_for_spinner()
206 wait_for(i915_seqno_passed(hws_seqno(spin, rq), in wait_for_spinner()
207 rq->fence.seqno), in wait_for_spinner()
233 struct i915_request *rq; in live_sanitycheck() local
235 rq = spinner_create_request(&spin, ctx, engine, MI_NOOP); in live_sanitycheck()
236 if (IS_ERR(rq)) { in live_sanitycheck()
237 err = PTR_ERR(rq); in live_sanitycheck()
241 i915_request_add(rq); in live_sanitycheck()
242 if (!wait_for_spinner(&spin, rq)) { in live_sanitycheck()
299 struct i915_request *rq; in live_preempt() local
301 rq = spinner_create_request(&spin_lo, ctx_lo, engine, in live_preempt()
303 if (IS_ERR(rq)) { in live_preempt()
304 err = PTR_ERR(rq); in live_preempt()
308 i915_request_add(rq); in live_preempt()
309 if (!wait_for_spinner(&spin_lo, rq)) { in live_preempt()
317 rq = spinner_create_request(&spin_hi, ctx_hi, engine, in live_preempt()
319 if (IS_ERR(rq)) { in live_preempt()
321 err = PTR_ERR(rq); in live_preempt()
325 i915_request_add(rq); in live_preempt()
326 if (!wait_for_spinner(&spin_hi, rq)) { in live_preempt()
387 struct i915_request *rq; in live_late_preempt() local
389 rq = spinner_create_request(&spin_lo, ctx_lo, engine, in live_late_preempt()
391 if (IS_ERR(rq)) { in live_late_preempt()
392 err = PTR_ERR(rq); in live_late_preempt()
396 i915_request_add(rq); in live_late_preempt()
397 if (!wait_for_spinner(&spin_lo, rq)) { in live_late_preempt()
402 rq = spinner_create_request(&spin_hi, ctx_hi, engine, MI_NOOP); in live_late_preempt()
403 if (IS_ERR(rq)) { in live_late_preempt()
405 err = PTR_ERR(rq); in live_late_preempt()
409 i915_request_add(rq); in live_late_preempt()
410 if (wait_for_spinner(&spin_hi, rq)) { in live_late_preempt()
416 engine->schedule(rq, &attr); in live_late_preempt()
418 if (!wait_for_spinner(&spin_hi, rq)) { in live_late_preempt()
488 struct i915_request *rq; in live_preempt_hang() local
493 rq = spinner_create_request(&spin_lo, ctx_lo, engine, in live_preempt_hang()
495 if (IS_ERR(rq)) { in live_preempt_hang()
496 err = PTR_ERR(rq); in live_preempt_hang()
500 i915_request_add(rq); in live_preempt_hang()
501 if (!wait_for_spinner(&spin_lo, rq)) { in live_preempt_hang()
509 rq = spinner_create_request(&spin_hi, ctx_hi, engine, in live_preempt_hang()
511 if (IS_ERR(rq)) { in live_preempt_hang()
513 err = PTR_ERR(rq); in live_preempt_hang()
520 i915_request_add(rq); in live_preempt_hang()
537 if (!wait_for_spinner(&spin_hi, rq)) { in live_preempt_hang()