leds: lm3692x: Split out lm3692x_leds_disable
authorGuido Günther <agx@sigxcpu.org>
Mon, 6 Jan 2020 15:48:52 +0000 (16:48 +0100)
committerPavel <pavel@ucw.cz>
Tue, 7 Jan 2020 13:09:13 +0000 (14:09 +0100)
Move the relevant parts out of lm3692x_remove() and call it from
there. No functional change.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
drivers/leds/leds-lm3692x.c

index f7fdfaee5ac5e9101a22c630c1f1dd2ff64430c9..1254695d7e948496dd5f0e7f466da08e89c05168 100644 (file)
@@ -289,6 +289,30 @@ out:
        return ret;
 }
 
+static int lm3692x_leds_disable(struct lm3692x_led *led)
+{
+       int ret;
+
+       ret = regmap_update_bits(led->regmap, LM3692X_EN, LM3692X_DEVICE_EN, 0);
+       if (ret) {
+               dev_err(&led->client->dev, "Failed to disable regulator: %d\n",
+                       ret);
+               return ret;
+       }
+
+       if (led->enable_gpio)
+               gpiod_direction_output(led->enable_gpio, 0);
+
+       if (led->regulator) {
+               ret = regulator_disable(led->regulator);
+               if (ret)
+                       dev_err(&led->client->dev,
+                               "Failed to disable regulator: %d\n", ret);
+       }
+
+       return ret;
+}
+
 static int lm3692x_brightness_set(struct led_classdev *led_cdev,
                                enum led_brightness brt_val)
 {
@@ -463,23 +487,9 @@ static int lm3692x_remove(struct i2c_client *client)
        struct lm3692x_led *led = i2c_get_clientdata(client);
        int ret;
 
-       ret = regmap_update_bits(led->regmap, LM3692X_EN, LM3692X_DEVICE_EN, 0);
-       if (ret) {
-               dev_err(&led->client->dev, "Failed to disable regulator: %d\n",
-                       ret);
+       ret = lm3692x_leds_disable(led);
+       if (ret)
                return ret;
-       }
-
-       if (led->enable_gpio)
-               gpiod_direction_output(led->enable_gpio, 0);
-
-       if (led->regulator) {
-               ret = regulator_disable(led->regulator);
-               if (ret)
-                       dev_err(&led->client->dev,
-                               "Failed to disable regulator: %d\n", ret);
-       }
-
        mutex_destroy(&led->lock);
 
        return 0;