On Fri, 30 Mar 2018 16:55:18 +0200
Boris Brezillon <boris.brezil...@bootlin.com> wrote:

> ->atomic_async_update() requires that drivers update the plane->state  
> object before returning. Make sure at least common properties have been
> updated.
> 
> Cc: Gustavo Padovan <gust...@padovan.org>
> Signed-off-by: Boris Brezillon <boris.brezil...@bootlin.com>

Applied to drm-misc-next.

> ---
> Hello,
> 
> This is a problem I had when debugging the VC4 ->atomic_async_update()
> implementation. The function was not updating plane->fb as it's
> supposed thus leaving plane->state->fb in an inconsistent state after
> each async update.
> 
> Not sure if such WARN_ON_ONCE() are accepted in the core though, so
> I'll maintainers decide whether this is relevant or not and whether
> they prefer to have WARN_ON() or DRM_ERROR() messages.
> 
> Regards,
> 
> Boris
> ---
>  drivers/gpu/drm/drm_atomic_helper.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
> b/drivers/gpu/drm/drm_atomic_helper.c
> index c35654591c12..d2b2583487ee 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -1561,6 +1561,17 @@ void drm_atomic_helper_async_commit(struct drm_device 
> *dev,
>       for_each_new_plane_in_state(state, plane, plane_state, i) {
>               funcs = plane->helper_private;
>               funcs->atomic_async_update(plane, plane_state);
> +
> +             /*
> +              * ->atomic_async_update() is supposed to update the
> +              * plane->state in-place, make sure at least common
> +              * properties have been properly updated.
> +              */
> +             WARN_ON_ONCE(plane->state->fb != plane_state->fb);
> +             WARN_ON_ONCE(plane->state->crtc_x != plane_state->crtc_x);
> +             WARN_ON_ONCE(plane->state->crtc_y != plane_state->crtc_y);
> +             WARN_ON_ONCE(plane->state->src_x != plane_state->src_x);
> +             WARN_ON_ONCE(plane->state->src_y != plane_state->src_y);
>       }
>  }
>  EXPORT_SYMBOL(drm_atomic_helper_async_commit);

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to