Lines Matching refs:dw

52 			      u32 *dw, int i)  in emit_aux_table_inv()  argument
54 dw[i++] = MI_LOAD_REGISTER_IMM | MI_LRI_NUM_REGS(1) | MI_LRI_MMIO_REMAP_EN; in emit_aux_table_inv()
55 dw[i++] = reg.addr + gt->mmio.adj_offset; in emit_aux_table_inv()
56 dw[i++] = AUX_INV; in emit_aux_table_inv()
57 dw[i++] = MI_NOOP; in emit_aux_table_inv()
62 static int emit_user_interrupt(u32 *dw, int i) in emit_user_interrupt() argument
64 dw[i++] = MI_USER_INTERRUPT; in emit_user_interrupt()
65 dw[i++] = MI_ARB_ON_OFF | MI_ARB_ENABLE; in emit_user_interrupt()
66 dw[i++] = MI_ARB_CHECK; in emit_user_interrupt()
71 static int emit_store_imm_ggtt(u32 addr, u32 value, u32 *dw, int i) in emit_store_imm_ggtt() argument
73 dw[i++] = MI_STORE_DATA_IMM | MI_SDI_GGTT | MI_SDI_NUM_DW(1); in emit_store_imm_ggtt()
74 dw[i++] = addr; in emit_store_imm_ggtt()
75 dw[i++] = 0; in emit_store_imm_ggtt()
76 dw[i++] = value; in emit_store_imm_ggtt()
81 static int emit_flush_dw(u32 *dw, int i) in emit_flush_dw() argument
83 dw[i++] = MI_FLUSH_DW | MI_FLUSH_IMM_DW; in emit_flush_dw()
84 dw[i++] = 0; in emit_flush_dw()
85 dw[i++] = 0; in emit_flush_dw()
86 dw[i++] = 0; in emit_flush_dw()
91 static int emit_flush_imm_ggtt(u32 addr, u32 value, u32 flags, u32 *dw, int i) in emit_flush_imm_ggtt() argument
93 dw[i++] = MI_FLUSH_DW | MI_FLUSH_DW_OP_STOREDW | MI_FLUSH_IMM_DW | in emit_flush_imm_ggtt()
95 dw[i++] = addr | MI_FLUSH_DW_USE_GTT; in emit_flush_imm_ggtt()
96 dw[i++] = 0; in emit_flush_imm_ggtt()
97 dw[i++] = value; in emit_flush_imm_ggtt()
102 static int emit_bb_start(u64 batch_addr, u32 ppgtt_flag, u32 *dw, int i) in emit_bb_start() argument
104 dw[i++] = MI_BATCH_BUFFER_START | ppgtt_flag | XE_INSTR_NUM_DW(3); in emit_bb_start()
105 dw[i++] = lower_32_bits(batch_addr); in emit_bb_start()
106 dw[i++] = upper_32_bits(batch_addr); in emit_bb_start()
111 static int emit_flush_invalidate(u32 addr, u32 val, u32 flush_flags, u32 *dw, int i) in emit_flush_invalidate() argument
113 dw[i++] = MI_FLUSH_DW | MI_FLUSH_DW_OP_STOREDW | in emit_flush_invalidate()
116 dw[i++] = addr | MI_FLUSH_DW_USE_GTT; in emit_flush_invalidate()
117 dw[i++] = 0; in emit_flush_invalidate()
118 dw[i++] = val; in emit_flush_invalidate()
124 emit_pipe_control(u32 *dw, int i, u32 bit_group_0, u32 bit_group_1, u32 offset, u32 value) in emit_pipe_control() argument
126 dw[i++] = GFX_OP_PIPE_CONTROL(6) | bit_group_0; in emit_pipe_control()
127 dw[i++] = bit_group_1; in emit_pipe_control()
128 dw[i++] = offset; in emit_pipe_control()
129 dw[i++] = 0; in emit_pipe_control()
130 dw[i++] = value; in emit_pipe_control()
131 dw[i++] = 0; in emit_pipe_control()
137 bool invalidate_tlb, u32 *dw, int i) in emit_pipe_invalidate() argument
162 return emit_pipe_control(dw, i, flags0, flags1, in emit_pipe_invalidate()
167 u32 *dw, int i) in emit_store_imm_ppgtt_posted() argument
169 dw[i++] = MI_STORE_DATA_IMM | MI_SDI_NUM_QW(1); in emit_store_imm_ppgtt_posted()
170 dw[i++] = lower_32_bits(addr); in emit_store_imm_ppgtt_posted()
171 dw[i++] = upper_32_bits(addr); in emit_store_imm_ppgtt_posted()
172 dw[i++] = lower_32_bits(value); in emit_store_imm_ppgtt_posted()
173 dw[i++] = upper_32_bits(value); in emit_store_imm_ppgtt_posted()
178 static int emit_render_cache_flush(struct xe_sched_job *job, u32 *dw, int i) in emit_render_cache_flush() argument
186 i = emit_pipe_control(dw, i, 0, PIPE_CONTROL_DEPTH_CACHE_FLUSH, in emit_render_cache_flush()
209 return emit_pipe_control(dw, i, flags0, flags1, 0, 0); in emit_render_cache_flush()
213 bool stall_only, u32 *dw, int i) in emit_pipe_imm_ggtt() argument
225 return emit_pipe_control(dw, i, flags0, flags1, addr, value); in emit_pipe_imm_ggtt()
237 u32 *dw, int i) in emit_copy_timestamp() argument
239 dw[i++] = MI_STORE_REGISTER_MEM | MI_SRM_USE_GGTT | MI_SRM_ADD_CS_OFFSET; in emit_copy_timestamp()
240 dw[i++] = RING_CTX_TIMESTAMP(0).addr; in emit_copy_timestamp()
241 dw[i++] = xe_lrc_ctx_job_timestamp_ggtt_addr(lrc); in emit_copy_timestamp()
242 dw[i++] = 0; in emit_copy_timestamp()
249 dw[i++] = MI_STORE_REGISTER_MEM | MI_SRM_USE_GGTT | in emit_copy_timestamp()
251 dw[i++] = RING_CTX_TIMESTAMP(0).addr; in emit_copy_timestamp()
252 dw[i++] = xe_lrc_ctx_timestamp_ggtt_addr(lrc); in emit_copy_timestamp()
253 dw[i++] = 0; in emit_copy_timestamp()
263 u32 dw[MAX_JOB_SIZE_DW], i = 0; in __emit_job_gen12_simple() local
269 i = emit_copy_timestamp(gt_to_xe(gt), lrc, dw, i); in __emit_job_gen12_simple()
272 dw[i++] = preparser_disable(true); in __emit_job_gen12_simple()
274 seqno, MI_INVALIDATE_TLB, dw, i); in __emit_job_gen12_simple()
275 dw[i++] = preparser_disable(false); in __emit_job_gen12_simple()
278 seqno, dw, i); in __emit_job_gen12_simple()
281 i = emit_bb_start(batch_addr, ppgtt_flag, dw, i); in __emit_job_gen12_simple()
284 dw[i++] = MI_ARB_ON_OFF | MI_ARB_DISABLE; in __emit_job_gen12_simple()
287 i = emit_flush_dw(dw, i); in __emit_job_gen12_simple()
290 dw, i); in __emit_job_gen12_simple()
293 i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, 0, dw, i); in __emit_job_gen12_simple()
295 i = emit_user_interrupt(dw, i); in __emit_job_gen12_simple()
299 xe_lrc_write_ring(lrc, dw, i * sizeof(*dw)); in __emit_job_gen12_simple()
319 u32 dw[MAX_JOB_SIZE_DW], i = 0; in __emit_job_gen12_video() local
327 i = emit_copy_timestamp(xe, lrc, dw, i); in __emit_job_gen12_video()
329 dw[i++] = preparser_disable(true); in __emit_job_gen12_video()
334 i = emit_aux_table_inv(gt, VD0_AUX_INV, dw, i); in __emit_job_gen12_video()
336 i = emit_aux_table_inv(gt, VE0_AUX_INV, dw, i); in __emit_job_gen12_video()
341 seqno, MI_INVALIDATE_TLB, dw, i); in __emit_job_gen12_video()
343 dw[i++] = preparser_disable(false); in __emit_job_gen12_video()
347 seqno, dw, i); in __emit_job_gen12_video()
349 i = emit_bb_start(batch_addr, ppgtt_flag, dw, i); in __emit_job_gen12_video()
352 dw[i++] = MI_ARB_ON_OFF | MI_ARB_DISABLE; in __emit_job_gen12_video()
355 i = emit_flush_dw(dw, i); in __emit_job_gen12_video()
358 dw, i); in __emit_job_gen12_video()
361 i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, 0, dw, i); in __emit_job_gen12_video()
363 i = emit_user_interrupt(dw, i); in __emit_job_gen12_video()
367 xe_lrc_write_ring(lrc, dw, i * sizeof(*dw)); in __emit_job_gen12_video()
375 u32 dw[MAX_JOB_SIZE_DW], i = 0; in __emit_job_gen12_render_compute() local
384 i = emit_copy_timestamp(xe, lrc, dw, i); in __emit_job_gen12_render_compute()
386 dw[i++] = preparser_disable(true); in __emit_job_gen12_render_compute()
393 i = emit_pipe_invalidate(job->q, mask_flags, job->ring_ops_flush_tlb, dw, i); in __emit_job_gen12_render_compute()
397 i = emit_aux_table_inv(gt, CCS_AUX_INV, dw, i); in __emit_job_gen12_render_compute()
399 dw[i++] = preparser_disable(false); in __emit_job_gen12_render_compute()
402 seqno, dw, i); in __emit_job_gen12_render_compute()
404 i = emit_bb_start(batch_addr, ppgtt_flag, dw, i); in __emit_job_gen12_render_compute()
407 dw[i++] = MI_ARB_ON_OFF | MI_ARB_DISABLE; in __emit_job_gen12_render_compute()
409 i = emit_render_cache_flush(job, dw, i); in __emit_job_gen12_render_compute()
414 dw, i); in __emit_job_gen12_render_compute()
416 i = emit_pipe_imm_ggtt(job->q, xe_lrc_seqno_ggtt_addr(lrc), seqno, lacks_render, dw, i); in __emit_job_gen12_render_compute()
418 i = emit_user_interrupt(dw, i); in __emit_job_gen12_render_compute()
422 xe_lrc_write_ring(lrc, dw, i * sizeof(*dw)); in __emit_job_gen12_render_compute()
432 u32 dw[MAX_JOB_SIZE_DW], i = 0; in emit_migration_job_gen12() local
436 i = emit_copy_timestamp(xe, lrc, dw, i); in emit_migration_job_gen12()
438 i = emit_store_imm_ggtt(saddr, seqno, dw, i); in emit_migration_job_gen12()
440 dw[i++] = MI_ARB_ON_OFF | MI_ARB_DISABLE; /* Enabled again below */ in emit_migration_job_gen12()
442 i = emit_bb_start(job->ptrs[0].batch_addr, BIT(8), dw, i); in emit_migration_job_gen12()
444 dw[i++] = preparser_disable(true); in emit_migration_job_gen12()
445 i = emit_flush_invalidate(saddr, seqno, job->migrate_flush_flags, dw, i); in emit_migration_job_gen12()
446 dw[i++] = preparser_disable(false); in emit_migration_job_gen12()
448 i = emit_bb_start(job->ptrs[1].batch_addr, BIT(8), dw, i); in emit_migration_job_gen12()
452 dw, i); in emit_migration_job_gen12()
454 i = emit_user_interrupt(dw, i); in emit_migration_job_gen12()
458 xe_lrc_write_ring(lrc, dw, i * sizeof(*dw)); in emit_migration_job_gen12()