diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-15 18:28:25 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-15 18:28:25 -0800 |
commit | 2dbfca5a181973558277b28b1f4c36362291f5e0 (patch) | |
tree | e9d217adf53e3532939e7a3c3bcec94afd671306 /drivers/leds/leds.h | |
parent | dab363f938a53ddaee60bfecc1aebdbb3d3af5f0 (diff) | |
parent | 2969bb18f8895eb4e0fbbc98efe706f15a3acff5 (diff) | |
download | linux-2dbfca5a181973558277b28b1f4c36362291f5e0.tar.bz2 |
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds
Pull LED subsystem update from Bryan Wu:
"We got some cleanup and driver for LP8860 as well as some patches for
LED Flash Class"
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
leds: lp8860: Fix module dependency
leds: lp8860: Introduce TI lp8860 4 channel LED driver
leds: Add support for setting brightness in a synchronous way
leds: implement sysfs interface locking mechanism
leds: syscon: handle multiple syscon instances
leds: delete copy/paste mistake
leds: regulator: Convert to devm_regulator_get_exclusive
Diffstat (limited to 'drivers/leds/leds.h')
-rw-r--r-- | drivers/leds/leds.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/leds/leds.h b/drivers/leds/leds.h index 4c50365344a9..2348dbda5269 100644 --- a/drivers/leds/leds.h +++ b/drivers/leds/leds.h @@ -17,16 +17,28 @@ #include <linux/rwsem.h> #include <linux/leds.h> -static inline void __led_set_brightness(struct led_classdev *led_cdev, +static inline void led_set_brightness_async(struct led_classdev *led_cdev, enum led_brightness value) { - if (value > led_cdev->max_brightness) - value = led_cdev->max_brightness; - led_cdev->brightness = value; + led_cdev->brightness = min(value, led_cdev->max_brightness); + if (!(led_cdev->flags & LED_SUSPENDED)) led_cdev->brightness_set(led_cdev, value); } +static inline int led_set_brightness_sync(struct led_classdev *led_cdev, + enum led_brightness value) +{ + int ret = 0; + + led_cdev->brightness = min(value, led_cdev->max_brightness); + + if (!(led_cdev->flags & LED_SUSPENDED)) + ret = led_cdev->brightness_set_sync(led_cdev, + led_cdev->brightness); + return ret; +} + static inline int led_get_brightness(struct led_classdev *led_cdev) { return led_cdev->brightness; |