]> Git Repo - J-linux.git/commitdiff
gnss: ubx: use new helper to remove open coded regulator handling
authorWolfram Sang <[email protected]>
Mon, 13 Nov 2023 00:51:49 +0000 (19:51 -0500)
committerJohan Hovold <[email protected]>
Fri, 15 Dec 2023 08:08:56 +0000 (09:08 +0100)
v_bckp shall always be enabled as long as the device exists. We now have
a regulator helper for that, use it.

Signed-off-by: Wolfram Sang <[email protected]>
Reviewed-by: Geert Uytterhoeven <[email protected]>
Signed-off-by: Johan Hovold <[email protected]>
drivers/gnss/ubx.c

index c951be202ca25a1040cc2861f3da6250b07a6e5a..9b76b101ba5e7f0f26cd2f50932b74e27f1493e1 100644 (file)
@@ -17,7 +17,6 @@
 #include "serial.h"
 
 struct ubx_data {
-       struct regulator *v_bckp;
        struct regulator *vcc;
 };
 
@@ -87,30 +86,16 @@ static int ubx_probe(struct serdev_device *serdev)
                goto err_free_gserial;
        }
 
-       data->v_bckp = devm_regulator_get_optional(&serdev->dev, "v-bckp");
-       if (IS_ERR(data->v_bckp)) {
-               ret = PTR_ERR(data->v_bckp);
-               if (ret == -ENODEV)
-                       data->v_bckp = NULL;
-               else
-                       goto err_free_gserial;
-       }
-
-       if (data->v_bckp) {
-               ret = regulator_enable(data->v_bckp);
-               if (ret)
-                       goto err_free_gserial;
-       }
+       ret = devm_regulator_get_enable_optional(&serdev->dev, "v-bckp");
+       if (ret < 0 && ret != -ENODEV)
+               goto err_free_gserial;
 
        ret = gnss_serial_register(gserial);
        if (ret)
-               goto err_disable_v_bckp;
+               goto err_free_gserial;
 
        return 0;
 
-err_disable_v_bckp:
-       if (data->v_bckp)
-               regulator_disable(data->v_bckp);
 err_free_gserial:
        gnss_serial_free(gserial);
 
@@ -120,11 +105,8 @@ err_free_gserial:
 static void ubx_remove(struct serdev_device *serdev)
 {
        struct gnss_serial *gserial = serdev_device_get_drvdata(serdev);
-       struct ubx_data *data = gnss_serial_get_drvdata(gserial);
 
        gnss_serial_deregister(gserial);
-       if (data->v_bckp)
-               regulator_disable(data->v_bckp);
        gnss_serial_free(gserial);
 }
 
This page took 0.071395 seconds and 4 git commands to generate.