aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2015-12-15 15:03:51 -0500
committerJacek Anaszewski <j.anaszewski@samsung.com>2016-01-04 03:57:40 -0500
commit143b77ce03b44779987109486212838df2f03cae (patch)
treef0ef47bbeaece8b0e06a377e73d29f636f0a331e
parent4ba113b6d4a4cec461e373aca44ce6bb2cb02476 (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.c10
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
198static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg, 198static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg,