lkml.org 
[lkml]   [2011]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH] platform: fix samsung brightness min/max calculations
    From
    Date
    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);

    \
     
     \ /
      Last update: 2011-04-20 06:03    [W:0.022 / U:148.080 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site