Signed-off-by: Andrey Smirnov <andrew.smir...@gmail.com>
---
 drivers/net/fec_imx.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c
index 4465788..f413acd 100644
--- a/drivers/net/fec_imx.c
+++ b/drivers/net/fec_imx.c
@@ -710,7 +710,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;
 
        fec->regs = dev_request_mem_region(dev, 0);
 
@@ -720,11 +722,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);
@@ -764,7 +766,7 @@ static int fec_probe(struct device_d *dev)
        }
 
        if (ret)
-               goto err_free;
+               goto disable_clk;
 
        fec_init(edev);
 
@@ -784,6 +786,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;
-- 
2.5.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to