Re: [PATCH v4 3/5] drm/etnaviv: Add a new function to emit a series of states to cmd stream

From: Christian Gmeiner

Date: Mon Nov 17 2025 - 03:28:27 EST


> From: Gert Wollny <gert.wollny@xxxxxxxxxxxxx>
>
> v2: fix formatting and remove superfluous masking (Lucas)
>
> Signed-off-by: Gert Wollny <gert.wollny@xxxxxxxxxxxxx>

Reviewed-by: Christian Gmeiner <cgmeiner@xxxxxxxxxx>

> ---
> drivers/gpu/drm/etnaviv/etnaviv_buffer.h | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_buffer.h b/drivers/gpu/drm/etnaviv/etnaviv_buffer.h
> index ae1ba1db6c8a..9388a686edcf 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_buffer.h
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_buffer.h
> @@ -43,6 +43,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);
> --
> 2.51.0
>


--
greets
--
Christian Gmeiner, MSc

https://christian-gmeiner.info/privacypolicy