Merge "leds: led-class: Retain the latest user brightness request"
This commit is contained in:
commit
1f60a15384
@ -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:
|
||||
@ -72,7 +73,24 @@ static ssize_t max_brightness_show(struct device *dev,
|
||||
|
||||
return sprintf(buf, "%u\n", led_cdev->max_brightness);
|
||||
}
|
||||
static DEVICE_ATTR_RO(max_brightness);
|
||||
|
||||
static ssize_t max_brightness_store(struct device *dev,
|
||||
struct device_attribute *attr, const char *buf, size_t size)
|
||||
{
|
||||
struct led_classdev *led_cdev = dev_get_drvdata(dev);
|
||||
unsigned long state;
|
||||
ssize_t ret = -EINVAL;
|
||||
|
||||
ret = kstrtoul(buf, 10, &state);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
led_cdev->max_brightness = state;
|
||||
led_set_brightness(led_cdev, led_cdev->usr_brightness_req);
|
||||
|
||||
return size;
|
||||
}
|
||||
static DEVICE_ATTR_RW(max_brightness);
|
||||
|
||||
#ifdef CONFIG_LEDS_TRIGGERS
|
||||
static DEVICE_ATTR(trigger, 0644, led_trigger_show, led_trigger_store);
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user