|
@@ -160,7 +160,7 @@ static int msm_iommu_probe(struct platform_device *pdev)
|
|
|
goto fail;
|
|
|
}
|
|
|
|
|
|
- ret = clk_enable(iommu_pclk);
|
|
|
+ ret = clk_prepare_enable(iommu_pclk);
|
|
|
if (ret)
|
|
|
goto fail_enable;
|
|
|
|
|
@@ -170,7 +170,7 @@ static int msm_iommu_probe(struct platform_device *pdev)
|
|
|
if (clk_get_rate(iommu_clk) == 0)
|
|
|
clk_set_min_rate(iommu_clk, 1);
|
|
|
|
|
|
- ret = clk_enable(iommu_clk);
|
|
|
+ ret = clk_prepare_enable(iommu_clk);
|
|
|
if (ret) {
|
|
|
clk_put(iommu_clk);
|
|
|
goto fail_pclk;
|
|
@@ -261,7 +261,7 @@ fail_clk:
|
|
|
clk_put(iommu_clk);
|
|
|
}
|
|
|
fail_pclk:
|
|
|
- clk_disable(iommu_pclk);
|
|
|
+ clk_disable_unprepare(iommu_pclk);
|
|
|
fail_enable:
|
|
|
clk_put(iommu_pclk);
|
|
|
fail:
|
|
@@ -275,8 +275,11 @@ static int msm_iommu_remove(struct platform_device *pdev)
|
|
|
|
|
|
drv = platform_get_drvdata(pdev);
|
|
|
if (drv) {
|
|
|
- if (drv->clk)
|
|
|
+ if (drv->clk) {
|
|
|
+ clk_unprepare(drv->clk);
|
|
|
clk_put(drv->clk);
|
|
|
+ }
|
|
|
+ clk_unprepare(drv->pclk);
|
|
|
clk_put(drv->pclk);
|
|
|
memset(drv, 0, sizeof(*drv));
|
|
|
kfree(drv);
|
|
@@ -314,14 +317,14 @@ static int msm_iommu_ctx_probe(struct platform_device *pdev)
|
|
|
INIT_LIST_HEAD(&ctx_drvdata->attached_elm);
|
|
|
platform_set_drvdata(pdev, ctx_drvdata);
|
|
|
|
|
|
- ret = clk_enable(drvdata->pclk);
|
|
|
+ ret = clk_prepare_enable(drvdata->pclk);
|
|
|
if (ret)
|
|
|
goto fail;
|
|
|
|
|
|
if (drvdata->clk) {
|
|
|
- ret = clk_enable(drvdata->clk);
|
|
|
+ ret = clk_prepare_enable(drvdata->clk);
|
|
|
if (ret) {
|
|
|
- clk_disable(drvdata->pclk);
|
|
|
+ clk_disable_unprepare(drvdata->pclk);
|
|
|
goto fail;
|
|
|
}
|
|
|
}
|