brcm63xx: add upstream LED drivers
[openwrt/staging/noltari.git] / target / linux / brcm63xx / patches-4.4 / 010-10-leds-bcm6358-merge-bcm6358_led_mode-and-bcm6358_led_.patch
1 From c48c89866ffa61cc209828f8daa06f4f6380028e Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
3 Date: Tue, 15 Dec 2015 21:03:52 +0100
4 Subject: [PATCH] leds: bcm6358: merge bcm6358_led_mode and bcm6358_led_set
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 bcm6358_led_mode is now only called by bcm6358_led_set, so merge both
10 in one single function.
11
12 Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
13 Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
14 ---
15 drivers/leds/leds-bcm6358.c | 20 ++++++--------------
16 1 file changed, 6 insertions(+), 14 deletions(-)
17
18 --- a/drivers/leds/leds-bcm6358.c
19 +++ b/drivers/leds/leds-bcm6358.c
20 @@ -76,12 +76,15 @@ static unsigned long bcm6358_led_busy(vo
21 return val;
22 }
23
24 -static void bcm6358_led_mode(struct bcm6358_led *led, unsigned long value)
25 +static void bcm6358_led_set(struct led_classdev *led_cdev,
26 + enum led_brightness value)
27 {
28 - unsigned long val;
29 + struct bcm6358_led *led =
30 + container_of(led_cdev, struct bcm6358_led, cdev);
31 + unsigned long flags, val;
32
33 + spin_lock_irqsave(led->lock, flags);
34 bcm6358_led_busy(led->mem);
35 -
36 val = bcm6358_led_read(led->mem + BCM6358_REG_MODE);
37 if ((led->active_low && value == LED_OFF) ||
38 (!led->active_low && value != LED_OFF))
39 @@ -89,17 +92,6 @@ static void bcm6358_led_mode(struct bcm6
40 else
41 val &= ~(BIT(led->pin));
42 bcm6358_led_write(led->mem + BCM6358_REG_MODE, val);
43 -}
44 -
45 -static void bcm6358_led_set(struct led_classdev *led_cdev,
46 - enum led_brightness value)
47 -{
48 - struct bcm6358_led *led =
49 - container_of(led_cdev, struct bcm6358_led, cdev);
50 - unsigned long flags;
51 -
52 - spin_lock_irqsave(led->lock, flags);
53 - bcm6358_led_mode(led, value);
54 spin_unlock_irqrestore(led->lock, flags);
55 }
56