|
@@ -1268,10 +1268,18 @@ msmsdcc_probe(struct platform_device *pdev)
|
|
|
goto clk_put;
|
|
|
}
|
|
|
|
|
|
+ ret = clk_prepare(host->pclk);
|
|
|
+ if (ret)
|
|
|
+ goto clk_put;
|
|
|
+
|
|
|
+ ret = clk_prepare(host->clk);
|
|
|
+ if (ret)
|
|
|
+ goto clk_unprepare_p;
|
|
|
+
|
|
|
/* Enable clocks */
|
|
|
ret = msmsdcc_enable_clocks(host);
|
|
|
if (ret)
|
|
|
- goto clk_put;
|
|
|
+ goto clk_unprepare;
|
|
|
|
|
|
host->pclk_rate = clk_get_rate(host->pclk);
|
|
|
host->clk_rate = clk_get_rate(host->clk);
|
|
@@ -1386,6 +1394,10 @@ msmsdcc_probe(struct platform_device *pdev)
|
|
|
free_irq(host->stat_irq, host);
|
|
|
clk_disable:
|
|
|
msmsdcc_disable_clocks(host, 0);
|
|
|
+ clk_unprepare:
|
|
|
+ clk_unprepare(host->clk);
|
|
|
+ clk_unprepare_p:
|
|
|
+ clk_unprepare(host->pclk);
|
|
|
clk_put:
|
|
|
clk_put(host->clk);
|
|
|
pclk_put:
|