xe_lrc
struct xe_lrc *lrc;
struct xe_lrc *lrc;
struct xe_lrc *lrc;
static void xe_exec_queue_set_lrc(struct xe_exec_queue *q, struct xe_lrc *lrc, u16 idx)
struct xe_lrc *xe_exec_queue_get_lrc(struct xe_exec_queue *q, u16 idx)
struct xe_lrc *lrc;
struct xe_lrc *xe_exec_queue_lrc(struct xe_exec_queue *q)
struct xe_lrc *__lrc = NULL;
struct xe_lrc *lrc;
struct xe_lrc *lrc;
struct xe_lrc *xe_exec_queue_lrc(struct xe_exec_queue *q);
struct xe_lrc *xe_exec_queue_get_lrc(struct xe_exec_queue *q, u16 idx);
struct xe_lrc *lrc[] __counted_by(width);
struct xe_lrc *lrc = exl->q->lrc[0];
static void __start_lrc(struct xe_hw_engine *hwe, struct xe_lrc *lrc,
struct xe_lrc *lrc;
struct xe_lrc *lrc = q->lrc[j];
struct xe_lrc *lrc = q->lrc[0];
static void lrc_parallel_clear(struct xe_lrc *lrc)
struct xe_lrc *lrc = READ_ONCE(q->lrc[0]);
struct xe_lrc *lrc = q->lrc[i];
struct xe_lrc *lrc = q->lrc[i];
struct xe_lrc *lrc = q->lrc[0];
void xe_lrc_update_memirq_regs_with_address(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
static void xe_lrc_set_ppgtt(struct xe_lrc *lrc, struct xe_vm *vm)
static void xe_lrc_finish(struct xe_lrc *lrc)
static ssize_t setup_utilization_wa(struct xe_lrc *lrc,
static ssize_t setup_timestamp_wa(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
static ssize_t setup_configfs_post_ctx_restore_bb(struct xe_lrc *lrc,
static ssize_t setup_configfs_mid_ctx_restore_bb(struct xe_lrc *lrc,
static ssize_t setup_invalidate_state_cache_wa(struct xe_lrc *lrc,
static ssize_t setup_invalidate_auxccs_wa(struct xe_lrc *lrc,
ssize_t (*setup)(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
struct xe_lrc *lrc;
int xe_lrc_setup_wa_bb_with_scratch(struct xe_lrc *lrc, struct xe_hw_engine *hwe, u32 *scratch)
static int setup_wa_bb(struct xe_lrc *lrc, struct xe_hw_engine *hwe)
setup_indirect_ctx(struct xe_lrc *lrc, struct xe_hw_engine *hwe)
static u8 xe_multi_queue_prio_to_lrc(struct xe_lrc *lrc, enum xe_multi_queue_priority priority)
void xe_lrc_set_multi_queue_priority(struct xe_lrc *lrc, enum xe_multi_queue_priority priority)
static int xe_lrc_ctx_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe, struct xe_vm *vm,
static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe, struct xe_vm *vm,
struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
struct xe_lrc *lrc;
struct xe_lrc *lrc = container_of(ref, struct xe_lrc, refcount);
void xe_lrc_update_hwctx_regs_with_address(struct xe_lrc *lrc)
void xe_lrc_set_ring_tail(struct xe_lrc *lrc, u32 tail)
u32 xe_lrc_ring_tail(struct xe_lrc *lrc)
static u32 xe_lrc_ring_start(struct xe_lrc *lrc)
void xe_lrc_set_ring_head(struct xe_lrc *lrc, u32 head)
u32 xe_lrc_ring_head(struct xe_lrc *lrc)
u32 xe_lrc_ring_space(struct xe_lrc *lrc)
static void __xe_lrc_write_ring(struct xe_lrc *lrc, struct iosys_map ring,
void xe_lrc_write_ring(struct xe_lrc *lrc, const void *data, size_t size)
u64 xe_lrc_descriptor(struct xe_lrc *lrc)
u32 xe_lrc_seqno_ggtt_addr(struct xe_lrc *lrc)
void xe_lrc_init_seqno_fence(struct xe_lrc *lrc, struct dma_fence *fence)
s32 xe_lrc_seqno(struct xe_lrc *lrc)
s32 xe_lrc_start_seqno(struct xe_lrc *lrc)
u32 xe_lrc_start_seqno_ggtt_addr(struct xe_lrc *lrc)
u32 xe_lrc_parallel_ggtt_addr(struct xe_lrc *lrc)
struct iosys_map xe_lrc_parallel_map(struct xe_lrc *lrc)
static u32 xe_lrc_engine_id(struct xe_lrc *lrc)
struct xe_lrc_snapshot *xe_lrc_snapshot_capture(struct xe_lrc *lrc)
static int get_ctx_timestamp(struct xe_lrc *lrc, u32 engine_id, u64 *reg_ctx_ts)
static bool context_active(struct xe_lrc *lrc)
static u64 xe_lrc_multi_queue_timestamp(struct xe_lrc *lrc)
struct xe_lrc *primary_lrc = lrc->multi_queue.primary_lrc;
static u64 xe_lrc_update_multi_queue_timestamp(struct xe_lrc *lrc, u64 *old_ts)
static u64 xe_lrc_context_timestamp(struct xe_lrc *lrc)
static u64 xe_lrc_update_context_timestamp(struct xe_lrc *lrc, u64 *old_ts)
u64 xe_lrc_timestamp(struct xe_lrc *lrc)
u64 xe_lrc_update_timestamp(struct xe_lrc *lrc, u64 *old_ts)
bool xe_lrc_ring_is_idle(struct xe_lrc *lrc)
static inline bool xe_lrc_has_indirect_ring_state(struct xe_lrc *lrc)
static inline u32 __xe_lrc_ring_offset(struct xe_lrc *lrc)
u32 xe_lrc_pphwsp_offset(struct xe_lrc *lrc)
u32 xe_lrc_regs_offset(struct xe_lrc *lrc)
static inline u32 __xe_lrc_seqno_offset(struct xe_lrc *lrc)
static inline u32 __xe_lrc_start_seqno_offset(struct xe_lrc *lrc)
static u32 __xe_lrc_ctx_job_timestamp_offset(struct xe_lrc *lrc)
static inline u32 __xe_lrc_parallel_offset(struct xe_lrc *lrc)
static inline u32 __xe_lrc_engine_id_offset(struct xe_lrc *lrc)
static u32 __xe_lrc_ctx_timestamp_offset(struct xe_lrc *lrc)
static u32 __xe_lrc_ctx_timestamp_udw_offset(struct xe_lrc *lrc)
static u32 __xe_lrc_queue_timestamp_offset(struct xe_lrc *lrc)
static u32 __xe_lrc_queue_timestamp_udw_offset(struct xe_lrc *lrc)
static inline u32 __xe_lrc_indirect_ring_offset(struct xe_lrc *lrc)
static inline u32 __xe_lrc_indirect_ctx_offset(struct xe_lrc *lrc)
static inline u32 __xe_lrc_wa_bb_offset(struct xe_lrc *lrc)
lrc_to_xe(struct xe_lrc *lrc)
static inline struct iosys_map __xe_lrc_##elem##_map(struct xe_lrc *lrc) \
static inline u32 __maybe_unused __xe_lrc_##elem##_ggtt_addr(struct xe_lrc *lrc) \
u32 xe_lrc_ctx_timestamp_ggtt_addr(struct xe_lrc *lrc)
u32 xe_lrc_ctx_timestamp_udw_ggtt_addr(struct xe_lrc *lrc)
static u64 xe_lrc_ctx_timestamp(struct xe_lrc *lrc)
static u64 xe_lrc_queue_timestamp(struct xe_lrc *lrc)
u32 xe_lrc_ctx_job_timestamp_ggtt_addr(struct xe_lrc *lrc)
u32 xe_lrc_ctx_job_timestamp(struct xe_lrc *lrc)
u32 xe_lrc_ggtt_addr(struct xe_lrc *lrc)
u32 xe_lrc_indirect_ring_ggtt_addr(struct xe_lrc *lrc)
static u32 xe_lrc_read_indirect_ctx_reg(struct xe_lrc *lrc, int reg_nr)
static void xe_lrc_write_indirect_ctx_reg(struct xe_lrc *lrc,
u32 xe_lrc_read_ctx_reg(struct xe_lrc *lrc, int reg_nr)
void xe_lrc_write_ctx_reg(struct xe_lrc *lrc, int reg_nr, u32 val)
u32 xe_lrc_pphwsp_offset(struct xe_lrc *lrc);
u32 xe_lrc_regs_offset(struct xe_lrc *lrc);
void xe_lrc_set_ring_tail(struct xe_lrc *lrc, u32 tail);
u32 xe_lrc_ring_tail(struct xe_lrc *lrc);
void xe_lrc_set_ring_head(struct xe_lrc *lrc, u32 head);
u32 xe_lrc_ring_head(struct xe_lrc *lrc);
u32 xe_lrc_ring_space(struct xe_lrc *lrc);
void xe_lrc_write_ring(struct xe_lrc *lrc, const void *data, size_t size);
bool xe_lrc_ring_is_idle(struct xe_lrc *lrc);
u32 xe_lrc_indirect_ring_ggtt_addr(struct xe_lrc *lrc);
u32 xe_lrc_ggtt_addr(struct xe_lrc *lrc);
u32 *xe_lrc_regs(struct xe_lrc *lrc);
void xe_lrc_update_hwctx_regs_with_address(struct xe_lrc *lrc);
void xe_lrc_update_memirq_regs_with_address(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
u32 xe_lrc_read_ctx_reg(struct xe_lrc *lrc, int reg_nr);
void xe_lrc_write_ctx_reg(struct xe_lrc *lrc, int reg_nr, u32 val);
u64 xe_lrc_descriptor(struct xe_lrc *lrc);
u32 xe_lrc_seqno_ggtt_addr(struct xe_lrc *lrc);
void xe_lrc_init_seqno_fence(struct xe_lrc *lrc, struct dma_fence *fence);
s32 xe_lrc_seqno(struct xe_lrc *lrc);
u32 xe_lrc_start_seqno_ggtt_addr(struct xe_lrc *lrc);
s32 xe_lrc_start_seqno(struct xe_lrc *lrc);
u32 xe_lrc_parallel_ggtt_addr(struct xe_lrc *lrc);
struct iosys_map xe_lrc_parallel_map(struct xe_lrc *lrc);
void xe_lrc_set_multi_queue_priority(struct xe_lrc *lrc, enum xe_multi_queue_priority priority);
struct xe_lrc_snapshot *xe_lrc_snapshot_capture(struct xe_lrc *lrc);
u32 xe_lrc_ctx_timestamp_ggtt_addr(struct xe_lrc *lrc);
u32 xe_lrc_ctx_timestamp_udw_ggtt_addr(struct xe_lrc *lrc);
u32 xe_lrc_ctx_job_timestamp_ggtt_addr(struct xe_lrc *lrc);
u32 xe_lrc_ctx_job_timestamp(struct xe_lrc *lrc);
int xe_lrc_setup_wa_bb_with_scratch(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
u64 xe_lrc_update_timestamp(struct xe_lrc *lrc, u64 *old_ts);
u64 xe_lrc_timestamp(struct xe_lrc *lrc);
struct xe_lrc;
struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
static inline struct xe_lrc *xe_lrc_get(struct xe_lrc *lrc)
static inline void xe_lrc_put(struct xe_lrc *lrc)
static inline bool xe_lrc_is_multi_queue(struct xe_lrc *lrc)
struct xe_lrc *primary_lrc;
struct xe_lrc *xe_migrate_lrc(struct xe_migrate *migrate)
struct xe_lrc *xe_migrate_lrc(struct xe_migrate *migrate);
static int emit_copy_timestamp(struct xe_device *xe, struct xe_lrc *lrc,
static int emit_fake_watchdog(struct xe_lrc *lrc, u32 *dw, int i)
static void __emit_job_gen12_simple(struct xe_sched_job *job, struct xe_lrc *lrc,
static void __emit_job_gen12_video(struct xe_sched_job *job, struct xe_lrc *lrc,
struct xe_lrc *lrc,
struct xe_lrc *lrc, u32 *head,
struct xe_lrc *lrc = job->q->lrc[0];
struct xe_lrc *lrc = job->q->lrc[0];
struct xe_lrc *lrc = xe_exec_queue_lrc(ctx->mig_q);
struct xe_lrc *lrc = xe_exec_queue_lrc(ctx->mig_q);
struct xe_lrc *lrc = xe_exec_queue_lrc(ctx->mig_q);
TP_PROTO(struct xe_lrc *lrc, uint64_t old),
__field(struct xe_lrc *, lrc)
TP_PROTO(struct xe_lrc *lrc, uint64_t old),
__field(struct xe_lrc *, lrc)
__field(struct xe_lrc *, primary_lrc)