diff mbox series

[1/2] regulator: wm8994: Rely on core to handle GPIO descriptor

Message ID 20181211095319.11393-1-linus.walleij@linaro.org
State Accepted
Commit daa531db8a09dc00084a6030c81f2555a8de70ac
Headers show
Series [1/2] regulator: wm8994: Rely on core to handle GPIO descriptor | expand

Commit Message

Linus Walleij Dec. 11, 2018, 9:53 a.m. UTC
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>

---
 drivers/regulator/wm8994-regulator.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

-- 
2.19.2

Comments

Charles Keepax Dec. 12, 2018, 2:22 p.m. UTC | #1
On Tue, Dec 11, 2018 at 10:53:18AM +0100, Linus Walleij wrote:
> 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>


Thanks,
Charles
diff mbox series

Patch

diff --git a/drivers/regulator/wm8994-regulator.c b/drivers/regulator/wm8994-regulator.c
index 46e6b4ee1491..38928cdcb6e6 100644
--- a/drivers/regulator/wm8994-regulator.c
+++ b/drivers/regulator/wm8994-regulator.c
@@ -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 = {