[PATCH 3/4] drm/plane-helper: Warn if atomic drivers call non-atomic helpers

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Sep 16 11:20:35 UTC 2022


Hi Thomas,

Thank you for the patch.

On Fri, Sep 09, 2022 at 12:59:46PM +0200, Thomas Zimmermann wrote:
> The plane update and disable helpers are only useful for non-atomic
> drivers. Print a warning if an atomic driver calls them.
> 
> Suggested-by: Daniel Vetter <daniel at ffwll.ch>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
>  drivers/gpu/drm/drm_plane_helper.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_plane_helper.c b/drivers/gpu/drm/drm_plane_helper.c
> index c7785967f5bf..1c904fc26a58 100644
> --- a/drivers/gpu/drm/drm_plane_helper.c
> +++ b/drivers/gpu/drm/drm_plane_helper.c
> @@ -30,8 +30,10 @@
>  #include <drm/drm_atomic_uapi.h>
>  #include <drm/drm_crtc_helper.h>
>  #include <drm/drm_device.h>
> +#include <drm/drm_drv.h>
>  #include <drm/drm_encoder.h>
>  #include <drm/drm_plane_helper.h>
> +#include <drm/drm_print.h>
>  #include <drm/drm_rect.h>
>  
>  #define SUBPIXEL_MASK 0xffff
> @@ -195,10 +197,14 @@ int drm_plane_helper_update_primary(struct drm_plane *plane, struct drm_crtc *cr
>  		.x2 = crtc_x + crtc_w,
>  		.y2 = crtc_y + crtc_h,
>  	};
> +	struct drm_device *dev = plane->dev;
>  	struct drm_connector **connector_list;
>  	int num_connectors, ret;
>  	bool visible;
>  
> +	if (drm_WARN_ON_ONCE(dev, drm_drv_uses_atomic_modeset(dev)))
> +		return -EINVAL;
> +
>  	ret = drm_plane_helper_check_update(plane, crtc, fb,
>  					    &src, &dest,
>  					    DRM_MODE_ROTATE_0,
> @@ -260,6 +266,10 @@ EXPORT_SYMBOL(drm_plane_helper_update_primary);
>  int drm_plane_helper_disable_primary(struct drm_plane *plane,
>  				     struct drm_modeset_acquire_ctx *ctx)
>  {
> +	struct drm_device *dev = plane->dev;
> +
> +	drm_WARN_ON_ONCE(dev, drm_drv_uses_atomic_modeset(dev));
> +
>  	return -EINVAL;
>  }
>  EXPORT_SYMBOL(drm_plane_helper_disable_primary);

-- 
Regards,

Laurent Pinchart


More information about the dri-devel mailing list