[systemd-commits] src/backlight

Zbigniew Jędrzejewski-Szmek zbyszek at kemper.freedesktop.org
Wed May 7 17:05:13 PDT 2014


 src/backlight/backlight.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

New commits:
commit 0c9d8f1d4b5018199cb5a9b57580dc1480a7f915
Author: Jani Nikula <jani.nikula at intel.com>
Date:   Wed May 7 12:01:01 2014 +0300

    backlight: handle saved brightness exceeding max brightness
    
    If too high a brightness value has been saved (e.g. due to kernel
    mechanism changing from one kernel version to another, or booting the
    userspace on another system), the brightness update fails and the
    process exits.
    
    Clamp saved brightness between the policy minimum introduced in
    
    commit 7b909d7407965c03caaba30daae7aee113627a83
    Author: Josh Triplett <josh at joshtriplett.org>
    Date:   Tue Mar 11 21:16:33 2014 -0700
    
        backlight: Avoid restoring brightness to an unreadably dim level
    
    and the absolute maximum.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=78200

diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
index c708391..691472c 100644
--- a/src/backlight/backlight.c
+++ b/src/backlight/backlight.c
@@ -229,7 +229,7 @@ static unsigned get_max_brightness(struct udev_device *device) {
  * would otherwise force the user to disable state restoration. */
 static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) {
         int r;
-        unsigned brightness, new_brightness;
+        unsigned brightness, new_brightness, min_brightness;
 
         r = safe_atou(*value, &brightness);
         if (r < 0) {
@@ -237,7 +237,8 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned
                 return;
         }
 
-        new_brightness = MAX3(brightness, 1U, max_brightness/20);
+        min_brightness = MAX(1U, max_brightness/20);
+        new_brightness = CLAMP(brightness, min_brightness, max_brightness);
         if (new_brightness != brightness) {
                 char *old_value = *value;
 
@@ -247,7 +248,11 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned
                         return;
                 }
 
-                log_debug("Saved brightness %s too low; increasing to %s.", old_value, *value);
+                log_info("Saved brightness %s %s to %s.", old_value,
+                         new_brightness > brightness ?
+                         "too low; increasing" : "too high; decreasing",
+                         *value);
+
                 free(old_value);
         }
 }



More information about the systemd-commits mailing list