mfd: wcd934x: Fix an error handling path in wcd934x_slim_probe()
[ Upstream commitf190b4891a
] If devm_gpiod_get_optional() fails, some resources need to be released, as already done in the .remove() function. While at it, remove the unneeded error code from a dev_err_probe() call. It is already added in a human readable way by dev_err_probe() itself. Fixes:6a0ee2a61a
("mfd: wcd934x: Replace legacy gpio interface for gpiod") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Link: https://lore.kernel.org/r/02d8447f6d1df52cc8357aae698152e9a9be67c6.1684565021.git.christophe.jaillet@wanadoo.fr Signed-off-by: Lee Jones <lee@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
7a37abf096
commit
2e8ab68460
|
@ -253,8 +253,9 @@ static int wcd934x_slim_probe(struct slim_device *sdev)
|
|||
usleep_range(600, 650);
|
||||
reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
|
||||
if (IS_ERR(reset_gpio)) {
|
||||
return dev_err_probe(dev, PTR_ERR(reset_gpio),
|
||||
"Failed to get reset gpio: err = %ld\n", PTR_ERR(reset_gpio));
|
||||
ret = dev_err_probe(dev, PTR_ERR(reset_gpio),
|
||||
"Failed to get reset gpio\n");
|
||||
goto err_disable_regulators;
|
||||
}
|
||||
msleep(20);
|
||||
gpiod_set_value(reset_gpio, 1);
|
||||
|
@ -264,6 +265,10 @@ static int wcd934x_slim_probe(struct slim_device *sdev)
|
|||
dev_set_drvdata(dev, ddata);
|
||||
|
||||
return 0;
|
||||
|
||||
err_disable_regulators:
|
||||
regulator_bulk_disable(WCD934X_MAX_SUPPLY, ddata->supplies);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void wcd934x_slim_remove(struct slim_device *sdev)
|
||||
|
|
Loading…
Reference in New Issue