Commit e341cc6e authored by Alex Hung's avatar Alex Hung Committed by Simon Ser
Browse files

drm/colorop: define a new macro for_each_new_colorop_in_state



Create a new macro for_each_new_colorop_in_state to access new
drm_colorop_state updated from uapi.

Reviewed-by: default avatarSimon Ser <contact@emersion.fr>
Signed-off-by: default avatarAlex Hung <alex.hung@amd.com>
Reviewed-by: default avatarDaniel Stone <daniels@collabora.com>
Reviewed-by: default avatarMelissa Wen <mwen@igalia.com>
Reviewed-by: default avatarSebastian Wick <sebastian.wick@redhat.com>
Signed-off-by: default avatarSimon Ser <contact@emersion.fr>
Link: https://patch.msgid.link/20251115000237.3561250-25-alex.hung@amd.com
parent dabeebae
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -1089,6 +1089,26 @@ void drm_state_dump(struct drm_device *dev, struct drm_printer *p);
			      (old_colorop_state) = (__state)->colorops[__i].old_state,\
			      (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 in places where the state delta needs to be considered, for 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