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;
>  }

Reply via email to