On 2026-03-10 07:32, Chaitanya Kumar Borah wrote:
> When drm_atomic_add_affected_planes() adds a plane to the atomic
> state, the associated colorops are not guaranteed to be included.
> This can leave colorop state out of the transaction when planes
> are pulled in implicitly (eg. during modeset or internal commits).
>
> Also add affected colorops when adding affected planes to keep
> plane and color pipeline state consistent within the atomic
> transaction.
>
> v2: Add affected colorops only when a pipeline is enabled
>
> Fixes: 2afc3184f3b3 ("drm/plane: Add COLOR PIPELINE property")
> Cc: <[email protected]> #v6.19+
> Reviewed-by: Uma Shankar <[email protected]> #v1
Reviewed-by: Harry Wentland <[email protected]>
Harry
> Signed-off-by: Chaitanya Kumar Borah <[email protected]>
> ---
> drivers/gpu/drm/drm_atomic.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 04925166df98..dd9f27cfe991 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1587,6 +1587,7 @@ drm_atomic_add_affected_planes(struct drm_atomic_state
> *state,
> const struct drm_crtc_state *old_crtc_state =
> drm_atomic_get_old_crtc_state(state, crtc);
> struct drm_plane *plane;
> + int ret;
>
> WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc));
>
> @@ -1600,6 +1601,12 @@ drm_atomic_add_affected_planes(struct drm_atomic_state
> *state,
>
> if (IS_ERR(plane_state))
> return PTR_ERR(plane_state);
> +
> + if (plane_state->color_pipeline) {
> + ret = drm_atomic_add_affected_colorops(state, plane);
> + if (ret)
> + return ret;
> + }
> }
> return 0;
> }