public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] platform: fix samsung brightness min/max calculations
@ 2011-04-20  3:58 Jason Stubbs
  2011-04-28  8:55 ` Jason Stubbs
  0 siblings, 1 reply; 14+ messages in thread
From: Jason Stubbs @ 2011-04-20  3:58 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel

From: Jason Stubbs <jasonbstubbs@gmail.com>

For one of the SABI configs, the valid brightness levels are 1 through 8 with
0 being reserved for the BIOS. To make the range 0-based, the driver is meant
to offset values to/from userspace by 1 giving valid levels of 0 through 7.

This patch fixes the reporting of the maximum level and the interpretation of
the value passed from userspace as per the above logic. It also fixes the
assumption that min_brightness will be either 0 or 1.

Signed-off-by: Jason Stubbs <jasonbstubbs@gmail.com>
---
diff --git a/drivers/platform/x86/samsung-laptop.c 
b/drivers/platform/x86/samsung-laptop.c
index d347116..ebf1b07 100644
--- a/drivers/platform/x86/samsung-laptop.c
+++ b/drivers/platform/x86/samsung-laptop.c
@@ -370,15 +370,17 @@ static u8 read_brightness(void)
 				  &sretval);
 	if (!retval) {
 		user_brightness = sretval.retval[0];
-		if (user_brightness != 0)
+		if (user_brightness > sabi_config->min_brightness)
 			user_brightness -= sabi_config->min_brightness;
+		else
+			user_brightness = 0;
 	}
 	return user_brightness;
 }
 
 static void set_brightness(u8 user_brightness)
 {
-	u8 user_level = user_brightness - sabi_config->min_brightness;
+	u8 user_level = user_brightness + sabi_config->min_brightness;
 
 	sabi_set_command(sabi_config->commands.set_brightness, user_level);
 }
@@ -782,7 +784,8 @@ static int __init samsung_init(void)
 	/* create a backlight device to talk to this one */
 	memset(&props, 0, sizeof(struct backlight_properties));
 	props.type = BACKLIGHT_PLATFORM;
-	props.max_brightness = sabi_config->max_brightness;
+	props.max_brightness = sabi_config->max_brightness -
+				sabi_config->min_brightness;
 	backlight_device = backlight_device_register("samsung", &sdev->dev,
 						     NULL, &backlight_ops,
 						     &props);

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2011-08-24 23:13 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-20  3:58 [PATCH] platform: fix samsung brightness min/max calculations Jason Stubbs
2011-04-28  8:55 ` Jason Stubbs
2011-05-10 22:39   ` Greg KH
2011-05-11  4:47     ` Jason Stubbs
2011-05-11 13:51       ` Greg KH
2011-05-12  2:13         ` Jason Stubbs
2011-05-12 16:44           ` Greg KH
2011-05-13 10:44             ` Jason Stubbs
2011-05-13 10:47               ` [PATCH] platform: add support for samsung nc210/nc110 Jason Stubbs
2011-06-13 23:55               ` [PATCH] platform: fix samsung brightness min/max calculations Greg KH
2011-06-19 21:23                 ` [PATCH] platform: samsung_laptop: " Jason Stubbs
2011-06-19 21:36                 ` [PATCH] platform: " Jason Stubbs
2011-08-24 23:11                   ` Greg KH
2011-05-12  2:32         ` Jason Stubbs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox