[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