Commit 9fcdece1 authored by Gert Wollny's avatar Gert Wollny Committed by Christian Gmeiner
Browse files

drm/etnaviv: Add a new function to emit a series of states to cmd stream



v2: fix formatting and remove superfluous masking (Lucas)

Signed-off-by: default avatarGert Wollny <gert.wollny@collabora.com>
Reviewed-by: default avatarChristian Gmeiner <cgmeiner@igalia.com>
Tested-by: Marek Vasut <marek.vasut@mailbox.org> # STM32MP255C DHCOS DHSBC
Link: https://patch.msgid.link/20251119164624.9297-4-gert.wollny@collabora.com


Signed-off-by: default avatarChristian Gmeiner <cgmeiner@igalia.com>
parent 9934873b
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -36,6 +36,19 @@ static inline void CMD_LOAD_STATE(struct etnaviv_cmdbuf *buffer, u32 reg,
	OUT(buffer, value);
}

static inline void CMD_LOAD_STATES_START(struct etnaviv_cmdbuf *buffer, u32 reg,
					 u32 nvalues)
{
	u32 index = reg >> VIV_FE_LOAD_STATE_HEADER_OFFSET__SHR;

	buffer->user_size = ALIGN(buffer->user_size, 8);

	/* write a register via cmd stream */
	OUT(buffer, VIV_FE_LOAD_STATE_HEADER_OP_LOAD_STATE |
			    VIV_FE_LOAD_STATE_HEADER_OFFSET(index) |
			    VIV_FE_LOAD_STATE_HEADER_COUNT(nvalues));
}

static inline void CMD_END(struct etnaviv_cmdbuf *buffer)
{
	buffer->user_size = ALIGN(buffer->user_size, 8);