2018-12-11 09:54:36

by Linus Walleij

[permalink] [raw]
Subject: [PATCH 1/2] regulator: wm8994: Rely on core to handle GPIO descriptor

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 <[email protected]>
Signed-off-by: Linus Walleij <[email protected]>
---
drivers/regulator/wm8994-regulator.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

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 = {
--
2.19.2



2018-12-11 09:54:39

by Linus Walleij

[permalink] [raw]
Subject: [PATCH 2/2] regulator: arizona-ldo1: Rely on core to handle GPIO descriptor

After making sure that the regulator core always take over
handling of the GPIO descriptors, the gpiod_put()
on the errorpath of the Arizona LDO1 driver becomes
redundant.

Reported-by: Charles Keepax <[email protected]>
Signed-off-by: Linus Walleij <[email protected]>
---
drivers/regulator/arizona-ldo1.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/regulator/arizona-ldo1.c b/drivers/regulator/arizona-ldo1.c
index 9a72eae4926d..b9a93049e41e 100644
--- a/drivers/regulator/arizona-ldo1.c
+++ b/drivers/regulator/arizona-ldo1.c
@@ -283,9 +283,6 @@ static int arizona_ldo1_common_init(struct platform_device *pdev,
of_node_put(config.of_node);

if (IS_ERR(ldo1->regulator)) {
- if (config.ena_gpiod)
- gpiod_put(config.ena_gpiod);
-
ret = PTR_ERR(ldo1->regulator);
dev_err(&pdev->dev, "Failed to register LDO1 supply: %d\n",
ret);
--
2.19.2


2018-12-12 14:24:07

by Charles Keepax

[permalink] [raw]
Subject: Re: [PATCH 1/2] regulator: wm8994: Rely on core to handle GPIO descriptor

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 <[email protected]>
> Signed-off-by: Linus Walleij <[email protected]>
> ---

Acked-by: Charles Keepax <[email protected]>

Thanks,
Charles

2018-12-12 14:24:44

by Charles Keepax

[permalink] [raw]
Subject: Re: [PATCH 2/2] regulator: arizona-ldo1: Rely on core to handle GPIO descriptor

On Tue, Dec 11, 2018 at 10:53:19AM +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 Arizona LDO1 driver becomes
> redundant.
>
> Reported-by: Charles Keepax <[email protected]>
> Signed-off-by: Linus Walleij <[email protected]>
> ---

Acked-by: Charles Keepax <[email protected]>

Thanks,
Charles