regulator: wm8994: Rely on core to handle GPIO descriptor
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 11 Dec 2018 09:53:18 +0000 (10:53 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 12 Dec 2018 16:47:10 +0000 (16:47 +0000)
After making sure that the regulator core always take over
handling of the GPIO descriptors, the gpiod_put()
on the errorpath of the wm8994 driver becomes redundant.

Reported-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/wm8994-regulator.c

index 46e6b4ee1491aa327e54d63d2d99f36e48c859a0..38928cdcb6e6584e4b30adf0653e84f2963da0bd 100644 (file)
@@ -172,6 +172,11 @@ static int wm8994_ldo_probe(struct platform_device *pdev)
                ldo->init_data = *pdata->ldo[id].init_data;
        }
 
+       /*
+        * At this point the GPIO descriptor is handled over to the
+        * regulator core and we need not worry about it on the
+        * error path.
+        */
        ldo->regulator = devm_regulator_register(&pdev->dev,
                                                 &wm8994_ldo_desc[id],
                                                 &config);
@@ -179,16 +184,12 @@ static int wm8994_ldo_probe(struct platform_device *pdev)
                ret = PTR_ERR(ldo->regulator);
                dev_err(wm8994->dev, "Failed to register LDO%d: %d\n",
                        id + 1, ret);
-               goto err;
+               return ret;
        }
 
        platform_set_drvdata(pdev, ldo);
 
        return 0;
-
-err:
-       gpiod_put(gpiod);
-       return ret;
 }
 
 static struct platform_driver wm8994_ldo_driver = {