Re: [RFC PATCH v3 3/3] drm: remove allow_fb_modifiers

From: Laurent Pinchart
Date: Sun Jan 23 2022 - 17:45:14 EST


Hello Esaki-san,

Thank you for the patch.

On Fri, Jan 14, 2022 at 07:17:53PM +0900, Tomohito Esaki wrote:
> The allow_fb_modifiers flag is unnecessary since it has been replaced
> with cannot_support_modifiers flag.

The new flag is fb_modifiers_not_supported, not
cannot_support_modifiers.

> Signed-off-by: Tomohito Esaki <etom@xxxxxxxxxx>
> ---
> drivers/gpu/drm/drm_plane.c | 9 ---------
> drivers/gpu/drm/selftests/test-drm_framebuffer.c | 1 -
> include/drm/drm_mode_config.h | 16 ----------------
> 3 files changed, 26 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index 5aa7e241971e..89a3d044ab59 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -288,15 +288,6 @@ static int __drm_universal_plane_init(struct drm_device *dev,
> }
> }
>
> - /* autoset the cap and check for consistency across all planes */
> - if (format_modifier_count) {
> - drm_WARN_ON(dev, !config->allow_fb_modifiers &&
> - !list_empty(&config->plane_list));
> - config->allow_fb_modifiers = true;
> - } else {
> - drm_WARN_ON(dev, config->allow_fb_modifiers);
> - }
> -

Shouldn't we keep a sanity check to ensure that drivers setting
fb_modifiers_not_supported do not pass modifiers ?

drm_WARN_ON(dev, config->fb_modifiers_not_supported &&
format_modifier_count);

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

> plane->modifier_count = format_modifier_count;
> plane->modifiers = kmalloc_array(format_modifier_count,
> sizeof(format_modifiers[0]),
> diff --git a/drivers/gpu/drm/selftests/test-drm_framebuffer.c b/drivers/gpu/drm/selftests/test-drm_framebuffer.c
> index 61b44d3a6a61..f6d66285c5fc 100644
> --- a/drivers/gpu/drm/selftests/test-drm_framebuffer.c
> +++ b/drivers/gpu/drm/selftests/test-drm_framebuffer.c
> @@ -323,7 +323,6 @@ static struct drm_device mock_drm_device = {
> .max_width = MAX_WIDTH,
> .min_height = MIN_HEIGHT,
> .max_height = MAX_HEIGHT,
> - .allow_fb_modifiers = true,
> .funcs = &mock_config_funcs,
> },
> };
> diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
> index da82f45351c7..5001bda9f9af 100644
> --- a/include/drm/drm_mode_config.h
> +++ b/include/drm/drm_mode_config.h
> @@ -917,22 +917,6 @@ struct drm_mode_config {
> */
> bool async_page_flip;
>
> - /**
> - * @allow_fb_modifiers:
> - *
> - * Whether the driver supports fb modifiers in the ADDFB2.1 ioctl call.
> - * Note that drivers should not set this directly, it is automatically
> - * set in drm_universal_plane_init().
> - *
> - * IMPORTANT:
> - *
> - * If this is set the driver must fill out the full implicit modifier
> - * information in their &drm_mode_config_funcs.fb_create hook for legacy
> - * userspace which does not set modifiers. Otherwise the GETFB2 ioctl is
> - * broken for modifier aware userspace.
> - */
> - bool allow_fb_modifiers;
> -
> /**
> * @fb_modifiers_not_supported:
> *

--
Regards,

Laurent Pinchart