[PATCH v4 4/7] drm/xe: Allow specifying number of extra dwords at the end of wa bb emission
Tvrtko Ursulin
tvrtko.ursulin at igalia.com
Fri Jun 13 15:35:55 UTC 2025
Indirect context setup will need more than one.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
Cc: Lucas De Marchi <lucas.demarchi at intel.com>
---
drivers/gpu/drm/xe/xe_lrc.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
index 0a90b7eeaf4e..9a27e194ba6a 100644
--- a/drivers/gpu/drm/xe/xe_lrc.c
+++ b/drivers/gpu/drm/xe/xe_lrc.c
@@ -981,6 +981,7 @@ static u32 *
setup_wa_bo(struct xe_lrc *lrc,
struct xe_hw_engine *hwe,
const size_t max_size,
+ unsigned int reserve_dw,
unsigned int offset,
const struct wa_bo_setup *funcs,
unsigned int num_funcs,
@@ -1011,10 +1012,9 @@ setup_wa_bo(struct xe_lrc *lrc,
*written += len;
/*
- * There should always be at least 1 additional dword for
- * the end marker
+ * Caller has asked for at least reserve_dw to remain unused.
*/
- if (len < 0 || xe_gt_WARN_ON(lrc->gt, remain < 1))
+ if (len < 0 || xe_gt_WARN_ON(lrc->gt, remain < reserve_dw))
goto fail;
cmd += len;
@@ -1049,7 +1049,7 @@ static int setup_wa_bb(struct xe_lrc *lrc, struct xe_hw_engine *hwe)
unsigned int written = 0;
u32 *cmd, *buf = NULL;
- cmd = setup_wa_bo(lrc, hwe, LRC_WA_BB_SIZE, offset, funcs,
+ cmd = setup_wa_bo(lrc, hwe, LRC_WA_BB_SIZE, 1, offset, funcs,
ARRAY_SIZE(funcs), &buf, &written);
if (IS_ERR(cmd))
return PTR_ERR(cmd);
--
2.48.0
More information about the Intel-xe
mailing list