mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 5b7efd2fa0c75164373d6faf28fec4b89065d39c Mon Sep 17 00:00:00 2001
 | 
						|
From: Hans de Goede <hdegoede@redhat.com>
 | 
						|
Date: Mon, 18 Nov 2019 16:51:28 +0100
 | 
						|
Subject: [PATCH] drm/modes: parse_cmdline: Set bpp/refresh_specified
 | 
						|
 after successful parsing
 | 
						|
 | 
						|
Commit 6a2d163756545aa3180d7851d5f8322b865e72be upstream.
 | 
						|
 | 
						|
drm_connector_get_cmdline_mode() calls
 | 
						|
drm_mode_parse_command_line_for_connector() with &connector->cmdline_mode
 | 
						|
as mode argument, so anything which we store in the mode arguments gets
 | 
						|
kept even if we return false.
 | 
						|
 | 
						|
Avoid storing a possibly false-postive bpp/refresh_specified setting
 | 
						|
in connector->cmdline_mode by moving the setting of these to after
 | 
						|
successful parsing of the bpp/refresh parts of the video= argument.
 | 
						|
 | 
						|
Acked-by: Maxime Ripard <mripard@kernel.org>
 | 
						|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 | 
						|
Link: https://patchwork.freedesktop.org/patch/msgid/20191118155134.30468-7-hdegoede@redhat.com
 | 
						|
---
 | 
						|
 drivers/gpu/drm/drm_modes.c | 9 +++++----
 | 
						|
 1 file changed, 5 insertions(+), 4 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/gpu/drm/drm_modes.c
 | 
						|
+++ b/drivers/gpu/drm/drm_modes.c
 | 
						|
@@ -1778,10 +1778,8 @@ bool drm_mode_parse_command_line_for_con
 | 
						|
 
 | 
						|
 	/* Try to locate the bpp and refresh specifiers, if any */
 | 
						|
 	bpp_ptr = strchr(name, '-');
 | 
						|
-	if (bpp_ptr) {
 | 
						|
+	if (bpp_ptr)
 | 
						|
 		bpp_off = bpp_ptr - name;
 | 
						|
-		mode->bpp_specified = true;
 | 
						|
-	}
 | 
						|
 
 | 
						|
 	refresh_ptr = strchr(name, '@');
 | 
						|
 	if (refresh_ptr) {
 | 
						|
@@ -1789,7 +1787,6 @@ bool drm_mode_parse_command_line_for_con
 | 
						|
 			return false;
 | 
						|
 
 | 
						|
 		refresh_off = refresh_ptr - name;
 | 
						|
-		mode->refresh_specified = true;
 | 
						|
 	}
 | 
						|
 
 | 
						|
 	/* Locate the start of named options */
 | 
						|
@@ -1832,6 +1829,8 @@ bool drm_mode_parse_command_line_for_con
 | 
						|
 		ret = drm_mode_parse_cmdline_bpp(bpp_ptr, &bpp_end_ptr, mode);
 | 
						|
 		if (ret)
 | 
						|
 			return false;
 | 
						|
+
 | 
						|
+		mode->bpp_specified = true;
 | 
						|
 	}
 | 
						|
 
 | 
						|
 	if (refresh_ptr) {
 | 
						|
@@ -1839,6 +1838,8 @@ bool drm_mode_parse_command_line_for_con
 | 
						|
 						     &refresh_end_ptr, mode);
 | 
						|
 		if (ret)
 | 
						|
 			return false;
 | 
						|
+
 | 
						|
+		mode->refresh_specified = true;
 | 
						|
 	}
 | 
						|
 
 | 
						|
 	/*
 |