Loading drivers/leds/led-class.c +19 −1 Original line number Diff line number Diff line Loading @@ -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: Loading @@ -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); Loading include/linux/leds.h +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
drivers/leds/led-class.c +19 −1 Original line number Diff line number Diff line Loading @@ -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: Loading @@ -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); Loading
include/linux/leds.h +1 −0 Original line number Diff line number Diff line Loading @@ -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