drm/modes: Only consider bpp and refresh before options
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. Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org> Link: https://lore.kernel.org/r/20220728-rpi-analog-tv-properties-v4-12-60d38873f782@cerno.tech Signed-off-by: Maxime Ripard <maxime@cerno.tech>
This commit is contained in:
parent
941731a268
commit
90c258ba4a
@ -1801,19 +1801,21 @@ bool drm_mode_parse_command_line_for_connector(const char *mode_option,
|
||||
|
||||
name = mode_option;
|
||||
|
||||
/* Try to locate the bpp and refresh specifiers, if any */
|
||||
bpp_ptr = strchr(name, '-');
|
||||
if (bpp_ptr)
|
||||
bpp_off = bpp_ptr - name;
|
||||
|
||||
refresh_ptr = strchr(name, '@');
|
||||
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;
|
||||
else
|
||||
options_off = strlen(name);
|
||||
|
||||
/* Try to locate the bpp and refresh specifiers, if any */
|
||||
bpp_ptr = strnchr(name, options_off, '-');
|
||||
if (bpp_ptr)
|
||||
bpp_off = bpp_ptr - name;
|
||||
|
||||
refresh_ptr = strnchr(name, options_off, '@');
|
||||
if (refresh_ptr)
|
||||
refresh_off = refresh_ptr - name;
|
||||
|
||||
/* Locate the end of the name / resolution, and parse it */
|
||||
if (bpp_ptr) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user