Messages in this thread Patch in this message | | | Subject | [PATCH] platform: fix samsung brightness min/max calculations | From | Jason Stubbs <> | Date | Wed, 20 Apr 2011 13:58:50 +1000 |
| |
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);
| |