9
0
Fork 0

fec_imx: Deallocate clocks when probe fails

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Andrey Smirnov 2016-03-15 20:33:38 -07:00 committed by Sascha Hauer
parent f88e78572b
commit f136e568db
1 changed files with 10 additions and 4 deletions

View File

@ -680,7 +680,9 @@ static int fec_probe(struct device_d *dev)
goto err_free;
}
clk_enable(fec->clk);
ret = clk_enable(fec->clk);
if (ret < 0)
goto put_clk;
iores = dev_request_mem_resource(dev, 0);
if (IS_ERR(iores))
@ -693,11 +695,11 @@ static int fec_probe(struct device_d *dev)
ret = gpio_request(phy_reset, "phy-reset");
if (ret)
goto err_free;
goto disable_clk;
ret = gpio_direction_output(phy_reset, 0);
if (ret)
goto err_free;
goto disable_clk;
mdelay(msec);
gpio_set_value(phy_reset, 1);
@ -737,7 +739,7 @@ static int fec_probe(struct device_d *dev)
}
if (ret)
goto err_free;
goto disable_clk;
fec_init(edev);
@ -757,6 +759,10 @@ static int fec_probe(struct device_d *dev)
return 0;
disable_clk:
clk_disable(fec->clk);
put_clk:
clk_put(fec->clk);
err_free:
free(fec);
return ret;