summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2016-03-15 20:33:40 -0700
committerSascha Hauer <s.hauer@pengutronix.de>2016-03-16 08:23:46 +0100
commitb0b00ad859e79c0e671576bb9276d188c3c06a44 (patch)
tree5b33253ac49d15d154300474830d78cc6253e850 /drivers
parenta0847ec06ed19fc71ec146e56c5adcb281f70247 (diff)
downloadbarebox-b0b00ad859e79c0e671576bb9276d188c3c06a44.tar.gz
barebox-b0b00ad859e79c0e671576bb9276d188c3c06a44.tar.xz
fec_imx: Free phy_reset GPIO if when probe fails
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fec_imx.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c
index da4eb55fb2..e7dbc16ded 100644
--- a/drivers/net/fec_imx.c
+++ b/drivers/net/fec_imx.c
@@ -701,7 +701,7 @@ static int fec_probe(struct device_d *dev)
ret = gpio_direction_output(phy_reset, 0);
if (ret)
- goto release_res;
+ goto free_gpio;
mdelay(msec);
gpio_set_value(phy_reset, 1);
@@ -741,7 +741,7 @@ static int fec_probe(struct device_d *dev)
}
if (ret)
- goto release_res;
+ goto free_gpio;
fec_init(edev);
@@ -761,6 +761,9 @@ static int fec_probe(struct device_d *dev)
return 0;
+free_gpio:
+ if (gpio_is_valid(phy_reset))
+ gpio_free(phy_reset);
release_res:
release_region(iores);
disable_clk: