net: davicom: Fix regulator not turned off on failed probe
When the probe fails or requests to be defered, we must disable the
regulator that was previously enabled.
Fixes: 7994fe55a4
("dm9000: Add regulator and reset support to dm9000")
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
03cbb87054
commit
ac88c531a5
1 changed files with 9 additions and 3 deletions
|
@ -1449,7 +1449,7 @@ dm9000_probe(struct platform_device *pdev)
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to request reset gpio %d: %d\n",
|
dev_err(dev, "failed to request reset gpio %d: %d\n",
|
||||||
reset_gpios, ret);
|
reset_gpios, ret);
|
||||||
return -ENODEV;
|
goto out_regulator_disable;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* According to manual PWRST# Low Period Min 1ms */
|
/* According to manual PWRST# Low Period Min 1ms */
|
||||||
|
@ -1461,8 +1461,10 @@ dm9000_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
if (!pdata) {
|
if (!pdata) {
|
||||||
pdata = dm9000_parse_dt(&pdev->dev);
|
pdata = dm9000_parse_dt(&pdev->dev);
|
||||||
if (IS_ERR(pdata))
|
if (IS_ERR(pdata)) {
|
||||||
return PTR_ERR(pdata);
|
ret = PTR_ERR(pdata);
|
||||||
|
goto out_regulator_disable;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Init network device */
|
/* Init network device */
|
||||||
|
@ -1703,6 +1705,10 @@ out:
|
||||||
dm9000_release_board(pdev, db);
|
dm9000_release_board(pdev, db);
|
||||||
free_netdev(ndev);
|
free_netdev(ndev);
|
||||||
|
|
||||||
|
out_regulator_disable:
|
||||||
|
if (!IS_ERR(power))
|
||||||
|
regulator_disable(power);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue