Commit daa531db authored by Linus Walleij's avatar Linus Walleij Committed by Mark Brown

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: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Acked-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 05f224ca
...@@ -172,6 +172,11 @@ static int wm8994_ldo_probe(struct platform_device *pdev) ...@@ -172,6 +172,11 @@ static int wm8994_ldo_probe(struct platform_device *pdev)
ldo->init_data = *pdata->ldo[id].init_data; 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, ldo->regulator = devm_regulator_register(&pdev->dev,
&wm8994_ldo_desc[id], &wm8994_ldo_desc[id],
&config); &config);
...@@ -179,16 +184,12 @@ static int wm8994_ldo_probe(struct platform_device *pdev) ...@@ -179,16 +184,12 @@ static int wm8994_ldo_probe(struct platform_device *pdev)
ret = PTR_ERR(ldo->regulator); ret = PTR_ERR(ldo->regulator);
dev_err(wm8994->dev, "Failed to register LDO%d: %d\n", dev_err(wm8994->dev, "Failed to register LDO%d: %d\n",
id + 1, ret); id + 1, ret);
goto err; return ret;
} }
platform_set_drvdata(pdev, ldo); platform_set_drvdata(pdev, ldo);
return 0; return 0;
err:
gpiod_put(gpiod);
return ret;
} }
static struct platform_driver wm8994_ldo_driver = { static struct platform_driver wm8994_ldo_driver = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment