[PATCH] drm: Add DRM_MODE_TYPE_USERDEF flag to probed modes matching a video= argument

Daniel Vetter daniel at ffwll.ch
Mon Nov 11 09:25:47 UTC 2019


On Sun, Nov 10, 2019 at 7:41 PM Hans de Goede <hdegoede at redhat.com> wrote:
>
> drm_helper_probe_add_cmdline_mode() prefers using a probed mode matching
> a video= argument over calculating our own timings for the user specified
> mode using CVT or GTF.
>
> But userspace code which is auto-configuring the mode may want to know that
> the user has specified that mode on the kernel commandline so that it can
> pick that mode over the mode which is marked as DRM_MODE_TYPE_PREFERRED.
>
> This commit sets the DRM_MODE_TYPE_USERDEF flag on the matching mode, just
> as we would do on the user-specified mode when no matching probed mode is
> found.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>

Will existing userspace dtrt here with this? Some links to popular
ones would be good (since essentially this is uapi fine tuning we need
that anyway). With that will get my ack.
-Danile

> ---
>  drivers/gpu/drm/drm_probe_helper.c | 2 ++
>  include/drm/drm_modes.h            | 3 ++-
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
> index ef2c468205a2..4fed64be11f9 100644
> --- a/drivers/gpu/drm/drm_probe_helper.c
> +++ b/drivers/gpu/drm/drm_probe_helper.c
> @@ -157,6 +157,8 @@ static int drm_helper_probe_add_cmdline_mode(struct drm_connector *connector)
>                                 continue;
>                 }
>
> +               /* Mark the matching mode as being preferred by the user */
> +               mode->type |= DRM_MODE_TYPE_USERDEF;
>                 return 0;
>         }
>
> diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
> index e946e20c61d8..c7efb7487e9b 100644
> --- a/include/drm/drm_modes.h
> +++ b/include/drm/drm_modes.h
> @@ -256,7 +256,8 @@ struct drm_display_mode {
>          *  - DRM_MODE_TYPE_DRIVER: Mode created by the driver, which is all of
>          *    them really. Drivers must set this bit for all modes they create
>          *    and expose to userspace.
> -        *  - DRM_MODE_TYPE_USERDEF: Mode defined via kernel command line
> +        *  - DRM_MODE_TYPE_USERDEF: Mode defined or selected via the kernel
> +        *    command line.
>          *
>          * Plus a big list of flags which shouldn't be used at all, but are
>          * still around since these flags are also used in the userspace ABI.
> --
> 2.23.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list