Lines Matching defs:lrc

116 	struct xe_lrc *lrc;
132 xa_for_each(&group->xa, idx, lrc)
133 xe_lrc_put(lrc);
213 q = kzalloc_flex(*q, lrc, width);
274 static void xe_exec_queue_set_lrc(struct xe_exec_queue *q, struct xe_lrc *lrc, u16 idx)
279 q->lrc[idx] = lrc;
281 q->lrc[idx]->multi_queue.primary_lrc =
282 q->multi_queue.group->primary->lrc[0];
299 struct xe_lrc *lrc;
304 lrc = q->lrc[idx];
305 if (lrc)
306 xe_lrc_get(lrc);
309 return lrc;
325 return q->lrc[0];
335 xe_lrc_put(q->lrc[i]);
382 struct xe_lrc *lrc;
386 lrc = xe_lrc_create(q->hwe, q->vm, q->replay_state,
388 if (IS_ERR(lrc)) {
389 err = PTR_ERR(lrc);
393 xe_exec_queue_set_lrc(q, lrc, i);
397 __lrc = lrc;
621 * Before releasing our ref to lrc and xef, accumulate our run ticks
901 err = xa_alloc(&group->xa, &pos, xe_lrc_get(q->lrc[0]),
904 xe_lrc_put(q->lrc[0]);
914 q->lrc[0]->multi_queue.pos = pos;
922 struct xe_lrc *lrc;
926 lrc = xa_erase(&group->xa, q->multi_queue.pos);
927 xe_assert(xe, lrc);
928 xe_lrc_put(lrc);
1254 * creating VM bind queues, regular exec queues, multi-lrc exec queues
1355 /* multi-lrc is only supported on select engine classes */
1376 /* SRIOV sched groups are not compatible with multi-lrc */
1511 if (xe_lrc_seqno(q->lrc[i]) !=
1512 q->lrc[i]->fence_ctx.next_seqno - 1)
1519 return xe_lrc_seqno(q->lrc[0]) ==
1520 q->lrc[0]->fence_ctx.next_seqno - 1;
1534 struct xe_lrc *lrc;
1556 lrc = q->lrc[0];
1557 new_ts = xe_lrc_update_timestamp(lrc, &old_ts);
1846 struct xe_lrc *lrc;
1848 lrc = xe_exec_queue_get_lrc(q, i);
1849 if (!lrc)
1852 xe_lrc_update_memirq_regs_with_address(lrc, q->hwe, scratch);
1853 xe_lrc_update_hwctx_regs_with_address(lrc);
1854 err = xe_lrc_setup_wa_bb_with_scratch(lrc, q->hwe, scratch);
1855 xe_lrc_put(lrc);