mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 03:11:11 -04:00
drm/xe/xelp: Wait for AuxCCS invalidation to complete
On AuxCCS platforms we need to wait for AuxCCS invalidations to complete. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patch.msgid.link/20260324084018.20353-6-tvrtko.ursulin@igalia.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
committed by
Rodrigo Vivi
parent
458b1e64e7
commit
cd1a516234
@@ -94,4 +94,10 @@
|
||||
#define MI_SET_APPID_SESSION_ID_MASK REG_GENMASK(6, 0)
|
||||
#define MI_SET_APPID_SESSION_ID(x) REG_FIELD_PREP(MI_SET_APPID_SESSION_ID_MASK, x)
|
||||
|
||||
#define MI_SEMAPHORE_WAIT_TOKEN (__MI_INSTR(0x1c) | XE_INSTR_NUM_DW(5)) /* XeLP+ */
|
||||
#define MI_SEMAPHORE_REGISTER_POLL REG_BIT(16)
|
||||
#define MI_SEMAPHORE_POLL REG_BIT(15)
|
||||
#define MI_SEMAPHORE_CMP_OP_MASK REG_GENMASK(14, 12)
|
||||
#define MI_SEMAPHORE_SAD_EQ_SDD REG_FIELD_PREP(MI_SEMAPHORE_CMP_OP_MASK, 4)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -54,7 +54,14 @@ static int emit_aux_table_inv(struct xe_gt *gt, struct xe_reg reg,
|
||||
dw[i++] = MI_LOAD_REGISTER_IMM | MI_LRI_NUM_REGS(1) | MI_LRI_MMIO_REMAP_EN;
|
||||
dw[i++] = reg.addr + gt->mmio.adj_offset;
|
||||
dw[i++] = AUX_INV;
|
||||
dw[i++] = MI_NOOP;
|
||||
dw[i++] = MI_SEMAPHORE_WAIT_TOKEN |
|
||||
MI_SEMAPHORE_REGISTER_POLL |
|
||||
MI_SEMAPHORE_POLL |
|
||||
MI_SEMAPHORE_SAD_EQ_SDD;
|
||||
dw[i++] = 0;
|
||||
dw[i++] = reg.addr + gt->mmio.adj_offset;
|
||||
dw[i++] = 0;
|
||||
dw[i++] = 0;
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
struct xe_sched_job;
|
||||
|
||||
#define MAX_JOB_SIZE_DW 72
|
||||
#define MAX_JOB_SIZE_DW 74
|
||||
#define MAX_JOB_SIZE_BYTES (MAX_JOB_SIZE_DW * 4)
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user