[PATCH V9 22/43] drm/colorop: define a new macro for_each_new_colorop_in_state

Melissa Wen mwen at igalia.com
Mon May 12 18:32:59 UTC 2025


On 04/29, Alex Hung wrote:
> Create a new macro for_each_new_colorop_in_state to access new
> drm_colorop_state updated from uapi.
> 
> Reviewed-by: Simon Ser <contact at emersion.fr>
> Signed-off-by: Alex Hung <alex.hung at amd.com>
> Reviewed-by: Daniel Stone <daniels at collabora.com>
> ---
>  include/drm/drm_atomic.h | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 4a30ed8ab1a8..4b3bd459a1eb 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -1069,6 +1069,26 @@ void drm_state_dump(struct drm_device *dev, struct drm_printer *p);
>  			      (new_colorop_state) = (__state)->colorops[__i].new_state, 1))
>  
>  
> +/**
> + * for_each_new_colorop_in_state - iterate over all colorops in an atomic update
> + * @__state: &struct drm_atomic_state pointer
> + * @colorop: &struct drm_colorop iteration cursor
> + * @new_colorop_state: &struct drm_colorop_state iteration cursor for the new state
> + * @__i: int iteration cursor, for macro-internal use
> + *
> + * This iterates over all colorops in an atomic update, tracking new state. This is
> + * useful is useful in places where the state delta needs to be considered, for

nit: "is useful" duplication

> + * example in atomic check functions.
> + */
> +#define for_each_new_colorop_in_state(__state, colorop, new_colorop_state, __i) \
> +	for ((__i) = 0;							\
> +	     (__i) < (__state)->dev->mode_config.num_colorop;	\
> +	     (__i)++)							\
> +		for_each_if ((__state)->colorops[__i].ptr &&		\
> +			     ((colorop) = (__state)->colorops[__i].ptr,	\
> +			      (void)(colorop) /* Only to avoid unused-but-set-variable warning */, \
> +			      (new_colorop_state) = (__state)->colorops[__i].new_state, 1))
> +
>  /**
>   * for_each_oldnew_plane_in_state - iterate over all planes in an atomic update
>   * @__state: &struct drm_atomic_state pointer
> -- 
> 2.43.0
> 


More information about the wayland-devel mailing list