[RFC PATCH 3/4] etnaviv: Add a new function to emit a series of states to cmd stream

Lucas Stach l.stach at pengutronix.de
Mon Jun 16 08:16:40 UTC 2025


Am Donnerstag, dem 05.06.2025 um 14:12 +0200 schrieb Gert Wollny:
> Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
> ---
>  drivers/gpu/drm/etnaviv/etnaviv_buffer.h | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_buffer.h b/drivers/gpu/drm/etnaviv/etnaviv_buffer.h
> index 0cb65a0c3bfc..b0a093b28774 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_buffer.h
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_buffer.h
> @@ -41,6 +41,20 @@ static inline void CMD_LOAD_STATE(struct etnaviv_cmdbuf *buffer,
>  	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) |

I see we aren't totally consistent in the other functions right now,
but please align those continued lines to the second argument.

> +	    (VIV_FE_LOAD_STATE_HEADER_COUNT(nvalues) &
> +	     VIV_FE_LOAD_STATE_HEADER_COUNT__MASK));

VIV_FE_LOAD_STATE_HEADER_COUNT already includes
VIV_FE_LOAD_STATE_HEADER_COUNT__MASK, so you don't need to do mask it
here.

Regards,
Lucas

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



More information about the etnaviv mailing list