|
@@ -1160,10 +1160,14 @@ static int __devinit mmci_probe(struct amba_device *dev,
|
|
|
goto host_free;
|
|
|
}
|
|
|
|
|
|
- ret = clk_enable(host->clk);
|
|
|
+ ret = clk_prepare(host->clk);
|
|
|
if (ret)
|
|
|
goto clk_free;
|
|
|
|
|
|
+ ret = clk_enable(host->clk);
|
|
|
+ if (ret)
|
|
|
+ goto clk_unprep;
|
|
|
+
|
|
|
host->plat = plat;
|
|
|
host->variant = variant;
|
|
|
host->mclk = clk_get_rate(host->clk);
|
|
@@ -1351,6 +1355,8 @@ static int __devinit mmci_probe(struct amba_device *dev,
|
|
|
iounmap(host->base);
|
|
|
clk_disable:
|
|
|
clk_disable(host->clk);
|
|
|
+ clk_unprep:
|
|
|
+ clk_unprepare(host->clk);
|
|
|
clk_free:
|
|
|
clk_put(host->clk);
|
|
|
host_free:
|
|
@@ -1398,6 +1404,7 @@ static int __devexit mmci_remove(struct amba_device *dev)
|
|
|
|
|
|
iounmap(host->base);
|
|
|
clk_disable(host->clk);
|
|
|
+ clk_unprepare(host->clk);
|
|
|
clk_put(host->clk);
|
|
|
|
|
|
if (host->vcc)
|