Commit a3397b24 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin Committed by Lucas De Marchi
Browse files

drm/xe: Allow specifying number of extra dwords at the end of wa bb emission



Indirect context setup will need more than one.

Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20250711160153.49833-6-tvrtko.ursulin@igalia.com


Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
parent 5ce511ad
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -984,6 +984,7 @@ struct bo_setup_state {
	struct xe_lrc		*lrc;
	struct xe_hw_engine	*hwe;
	size_t			max_size;
	size_t                  reserve_dw;
	unsigned int		offset;
	const struct bo_setup	*funcs;
	unsigned int		num_funcs;
@@ -1017,10 +1018,10 @@ static int setup_bo(struct bo_setup_state *state)
		remain -= 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(state->lrc->gt, remain < 1))
		if (len < 0 ||
		    xe_gt_WARN_ON(state->lrc->gt, remain < state->reserve_dw))
			goto fail;

		state->ptr += len;
@@ -1054,6 +1055,7 @@ static int setup_wa_bb(struct xe_lrc *lrc, struct xe_hw_engine *hwe)
		.lrc = lrc,
		.hwe = hwe,
		.max_size = LRC_WA_BB_SIZE,
		.reserve_dw = 1,
		.offset = __xe_lrc_wa_bb_offset(lrc),
		.funcs = funcs,
		.num_funcs = ARRAY_SIZE(funcs),