diff options
author | Simon Arlott <simon@fire.lp0.eu> | 2015-11-16 15:24:59 -0500 |
---|---|---|
committer | Jacek Anaszewski <j.anaszewski@samsung.com> | 2016-01-04 03:57:37 -0500 |
commit | 9d3c0663df338357625e75e7bead3322f083778b (patch) | |
tree | a451cdf64ec1f41f1b28654546e18947a02acbd9 | |
parent | c29e650b3af272bedddc6c032148935e6f200cb7 (diff) |
leds: bcm6328: Reuse bcm6328_led_set() instead of copying its functionality
When ensuring a consistent initial LED state in bcm6328_led (as they may
be blinking instead of on/off), the LED register is set using an inverted
copy of bcm6328_led_set(). To avoid further errors relating to active low
handling, call this function directly instead.
As bcm6328_led_set() acquires the same spinlock again when updating the
register, it is called after unlocking.
Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
-rw-r--r-- | drivers/leds/leds-bcm6328.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/leds/leds-bcm6328.c b/drivers/leds/leds-bcm6328.c index c7ea5c626331..95d0cf94089b 100644 --- a/drivers/leds/leds-bcm6328.c +++ b/drivers/leds/leds-bcm6328.c | |||
@@ -314,14 +314,10 @@ static int bcm6328_led(struct device *dev, struct device_node *nc, u32 reg, | |||
314 | } else { | 314 | } else { |
315 | led->cdev.brightness = LED_OFF; | 315 | led->cdev.brightness = LED_OFF; |
316 | } | 316 | } |
317 | |||
318 | if ((led->active_low && led->cdev.brightness == LED_FULL) || | ||
319 | (!led->active_low && led->cdev.brightness == LED_OFF)) | ||
320 | bcm6328_led_mode(led, BCM6328_LED_MODE_ON); | ||
321 | else | ||
322 | bcm6328_led_mode(led, BCM6328_LED_MODE_OFF); | ||
323 | spin_unlock_irqrestore(lock, flags); | 317 | spin_unlock_irqrestore(lock, flags); |
324 | 318 | ||
319 | bcm6328_led_set(&led->cdev, led->cdev.brightness); | ||
320 | |||
325 | led->cdev.brightness_set = bcm6328_led_set; | 321 | led->cdev.brightness_set = bcm6328_led_set; |
326 | led->cdev.blink_set = bcm6328_blink_set; | 322 | led->cdev.blink_set = bcm6328_blink_set; |
327 | 323 | ||