summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Grzeschik <m.grzeschik@pengutronix.de>2020-12-17 12:07:27 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2021-01-06 11:00:10 +0100
commit51dc28bb289e5aab101d3609cf2c5c74c62d8a1c (patch)
tree3ecf04862dac68e8721b9c3a512eedcb280d47d2
parentfec44233632957debf8a6d182f9f22fe95a0fd22 (diff)
downloadbarebox-51dc28bb289e5aab101d3609cf2c5c74c62d8a1c.tar.gz
barebox-51dc28bb289e5aab101d3609cf2c5c74c62d8a1c.tar.xz
usb: dwc2: cleanup on error for deferred probing
The driver needs to cleanup the resources if an error occurred. Otherwise, on deferred probing, it will fail to take the resources for a second time. Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Tested-by: Jules Maselbas <jmaselbas@kalray.eu> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/usb/dwc2/dwc2.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/usb/dwc2/dwc2.c b/drivers/usb/dwc2/dwc2.c
index bd33334a83..82b5ef2813 100644
--- a/drivers/usb/dwc2/dwc2.c
+++ b/drivers/usb/dwc2/dwc2.c
@@ -53,12 +53,12 @@ static int dwc2_probe(struct device_d *dev)
dwc2->phy = phy_optional_get(dev, "usb2-phy");
if (IS_ERR(dwc2->phy)) {
ret = PTR_ERR(dwc2->phy);
- return ret;
+ goto release_region;
}
ret = phy_init(dwc2->phy);
if (ret)
- goto err_phy_init;
+ goto release_region;
ret = phy_power_on(dwc2->phy);
if (ret)
goto err_phy_power;
@@ -100,7 +100,8 @@ error:
phy_power_off(dwc2->phy);
err_phy_power:
phy_exit(dwc2->phy);
-err_phy_init:
+release_region:
+ release_region(iores);
return ret;
}