From 29cca490d4faddacf7afdae5c6580766839ed077 Mon Sep 17 00:00:00 2001 From: Ram Chandrasekar Date: Thu, 2 Apr 2015 10:44:57 -0600 Subject: [PATCH] leds: led-class: Retain the latest user brightness request Retain the latest user brightness request. This ensures that when a max brightness limit is altered, the last brightness request is taken into account, when restoring the current brightness. Change-Id: I6461e06f64abe336cabc27a3992d734f1fb745c6 Signed-off-by: Ram Chandrasekar --- drivers/leds/led-class.c | 3 ++- include/linux/leds.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c index 3b152e7af22a..77b7ea8291c5 100644 --- a/drivers/leds/led-class.c +++ b/drivers/leds/led-class.c @@ -57,6 +57,7 @@ static ssize_t brightness_store(struct device *dev, if (state == LED_OFF && !(led_cdev->flags & LED_KEEP_TRIGGER)) led_trigger_remove(led_cdev); led_set_brightness(led_cdev, state); + led_cdev->usr_brightness_req = state; ret = size; unlock: @@ -85,7 +86,7 @@ static ssize_t max_brightness_store(struct device *dev, return ret; led_cdev->max_brightness = state; - led_set_brightness(led_cdev, led_cdev->brightness); + led_set_brightness(led_cdev, led_cdev->usr_brightness_req); return size; } diff --git a/include/linux/leds.h b/include/linux/leds.h index fc0ce6c21ab8..8813f77f7f95 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h @@ -37,6 +37,7 @@ struct led_classdev { const char *name; enum led_brightness brightness; enum led_brightness max_brightness; + enum led_brightness usr_brightness_req; int flags; /* Lower 16 bits reflect status */