diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2015-12-15 15:03:51 -0500 |
---|---|---|
committer | Jacek Anaszewski <j.anaszewski@samsung.com> | 2016-01-04 03:57:40 -0500 |
commit | 143b77ce03b44779987109486212838df2f03cae (patch) | |
tree | f0ef47bbeaece8b0e06a377e73d29f636f0a331e | |
parent | 4ba113b6d4a4cec461e373aca44ce6bb2cb02476 (diff) |
leds: bcm6328: simplify duplicated unlock in bcm6328_blink_set
Instead of duplicating the unlock we can store the return value and use a
single unlock before returning that value, which simplifies the code.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
-rw-r--r-- | drivers/leds/leds-bcm6328.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/leds/leds-bcm6328.c b/drivers/leds/leds-bcm6328.c index e13daa2f31fb..47f7c9f310be 100644 --- a/drivers/leds/leds-bcm6328.c +++ b/drivers/leds/leds-bcm6328.c | |||
@@ -146,6 +146,7 @@ static int bcm6328_blink_set(struct led_classdev *led_cdev, | |||
146 | struct bcm6328_led *led = | 146 | struct bcm6328_led *led = |
147 | container_of(led_cdev, struct bcm6328_led, cdev); | 147 | container_of(led_cdev, struct bcm6328_led, cdev); |
148 | unsigned long delay, flags; | 148 | unsigned long delay, flags; |
149 | int rc; | ||
149 | 150 | ||
150 | if (!*delay_on) | 151 | if (!*delay_on) |
151 | *delay_on = BCM6328_LED_DEF_DELAY; | 152 | *delay_on = BCM6328_LED_DEF_DELAY; |
@@ -183,16 +184,15 @@ static int bcm6328_blink_set(struct led_classdev *led_cdev, | |||
183 | bcm6328_led_write(led->mem + BCM6328_REG_INIT, val); | 184 | bcm6328_led_write(led->mem + BCM6328_REG_INIT, val); |
184 | 185 | ||
185 | bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK); | 186 | bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK); |
186 | 187 | rc = 0; | |
187 | spin_unlock_irqrestore(led->lock, flags); | ||
188 | } else { | 188 | } else { |
189 | spin_unlock_irqrestore(led->lock, flags); | ||
190 | dev_dbg(led_cdev->dev, | 189 | dev_dbg(led_cdev->dev, |
191 | "fallback to soft blinking (delay already set)\n"); | 190 | "fallback to soft blinking (delay already set)\n"); |
192 | return -EINVAL; | 191 | rc = -EINVAL; |
193 | } | 192 | } |
193 | spin_unlock_irqrestore(led->lock, flags); | ||
194 | 194 | ||
195 | return 0; | 195 | return rc; |
196 | } | 196 | } |
197 | 197 | ||
198 | static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg, | 198 | static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg, |