Commit ac88c531 authored by Paul Cercueil's avatar Paul Cercueil Committed by David S. Miller

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: 7994fe55 ("dm9000: Add regulator and reset support to dm9000")
Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 03cbb870
...@@ -1449,7 +1449,7 @@ dm9000_probe(struct platform_device *pdev) ...@@ -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) ...@@ -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 @@ dm9000_probe(struct platform_device *pdev) ...@@ -1703,6 +1705,10 @@ dm9000_probe(struct platform_device *pdev)
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;
} }
......
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