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 <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>
This commit is contained in:
parent
05f224ca66
commit
daa531db8a
@ -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)
|
|||||||
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 = {
|
||||||
|
Loading…
Reference in New Issue
Block a user