Thread (151 messages) 151 messages, 9 authors, 2022-08-30

Re: [PATCH v1 07/35] drm/modes: Only consider bpp and refresh before options

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2022-08-12 13:32:24
Also in: dri-devel, linux-amlogic, linux-sunxi, lkml

Hi Maxime,

On Fri, Jul 29, 2022 at 6:35 PM Maxime Ripard [off-list ref] wrote:
Some video= options might have a value that contains a dash. However, the
command line parsing mode considers all dashes as the separator between the
mode and the bpp count.

Let's rework the parsing code a bit to only consider a dash as the bpp
separator if it before a comma, the options separator.

A follow-up patch will add a unit-test for this once such an option is
introduced.

Signed-off-by: Maxime Ripard <redacted>
Thanks for your patch!

Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
quoted hunk ↗ jump to hunk
--- a/drivers/gpu/drm/drm_modes.c
+++ b/drivers/gpu/drm/drm_modes.c
@@ -1819,20 +1819,22 @@ bool drm_mode_parse_command_line_for_connector(const char *mode_option,

        name = mode_option;

+       /* Locate the start of named options */
+       options_ptr = strchr(name, ',');
+       if (options_ptr)
+               options_off = options_ptr - name;
+       else
+               options_off = strlen(name);
+
        /* Try to locate the bpp and refresh specifiers, if any */
-       bpp_ptr = strchr(name, '-');
+       bpp_ptr = strnchr(name, options_off, '-');
Probably you still want to add a check that the next character
is actually a digit, cfr. my "[PATCH v2 5/5] drm/modes:
parse_cmdline: Add support for named modes containing dashes"
(https://lore.kernel.org/dri-devel/2eb205da88c3cb19ddf04d167ece4e16a330948b.1657788997.git.geert@linux-m68k.org (local))?
        if (bpp_ptr)
                bpp_off = bpp_ptr - name;

-       refresh_ptr = strchr(name, '@');
+       refresh_ptr = strnchr(name, options_off, '@');
        if (refresh_ptr)
                refresh_off = refresh_ptr - name;

-       /* Locate the start of named options */
-       options_ptr = strchr(name, ',');
-       if (options_ptr)
-               options_off = options_ptr - name;
-
        /* Locate the end of the name / resolution, and parse it */
        if (bpp_ptr) {
                mode_end = bpp_off;
Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help