diff options
Diffstat (limited to 'drivers/gpu/drm/drm_modes.c')
| -rw-r--r-- | drivers/gpu/drm/drm_modes.c | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index 304004fb80aa..e0221183135b 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c @@ -1801,20 +1801,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, '-');  	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;  | 
