lkml.org 
[lkml]   [2013]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] acpi: video: improve quirk check
    Date
    If the _BCL package is descending, the first level (br->levels[2]) will
    be 0, and if the number of levels matches the number of steps, we might
    confuse a returned level to mean the index.

    For example:

    current_level = max_level = 100
    test_level = 0
    returned level = 100

    In this case 100 means the level, not the index, and _BCM failed. But if
    the _BCL package is descending, the index of level 0 is also 100, so we
    assume _BQC is indexed, when it's not.

    This causes all _BQC calls to return bogus values causing weird behavior
    from the user's perspective. For example: xbacklight -set 10; xbacklight
    -set 20; would flash to 90% and then slowly down to the desired level
    (20).

    The solution is simple; test anything other than the first level (e.g.
    1).

    Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
    ---

    On top of this we might want to test yet another value, because br->levels[3]
    might be the current value (although very unlikely).

    drivers/acpi/video.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
    index 0ec434d..e1284b8 100644
    --- a/drivers/acpi/video.c
    +++ b/drivers/acpi/video.c
    @@ -689,7 +689,7 @@ static int acpi_video_bqc_quirk(struct acpi_video_device *device,
    * Some systems always report current brightness level as maximum
    * through _BQC, we need to test another value for them.
    */
    - test_level = current_level == max_level ? br->levels[2] : max_level;
    + test_level = current_level == max_level ? br->levels[3] : max_level;

    result = acpi_video_device_lcd_set_level(device, test_level);
    if (result)
    --
    1.8.4.rc1


    \
     
     \ /
      Last update: 2013-08-02 22:01    [W:8.811 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site