iommu/rockchip: don't do power domain enable on probe
authorMark Yao <mark.yao@rock-chips.com>
Fri, 10 Mar 2017 03:26:30 +0000 (11:26 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Fri, 10 Mar 2017 06:23:22 +0000 (14:23 +0800)
Change-Id: I1484cbe6f7aa4fe358a3223de62a19aabee29d5c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
drivers/iommu/rockchip-iommu.c

index c4c2c54a6127992b12c4ff0a269cebeb2076736a..60c96b5702579dd76fbceaf9fd59f01d621d2d9e 100644 (file)
@@ -267,12 +267,14 @@ static void rk_iommu_power_on(struct rk_iommu *iommu)
                clk_enable(iommu->hclk);
        }
 
                clk_enable(iommu->hclk);
        }
 
+       pm_runtime_enable(iommu->dev);
        pm_runtime_get_sync(iommu->dev);
 }
 
 static void rk_iommu_power_off(struct rk_iommu *iommu)
 {
        pm_runtime_put_sync(iommu->dev);
        pm_runtime_get_sync(iommu->dev);
 }
 
 static void rk_iommu_power_off(struct rk_iommu *iommu)
 {
        pm_runtime_put_sync(iommu->dev);
+       pm_runtime_disable(iommu->dev);
 
        if (iommu->aclk && iommu->hclk) {
                clk_disable(iommu->aclk);
 
        if (iommu->aclk && iommu->hclk) {
                clk_disable(iommu->aclk);
@@ -1209,15 +1211,11 @@ static int rk_iommu_probe(struct platform_device *pdev)
                clk_prepare(iommu->hclk);
        }
 
                clk_prepare(iommu->hclk);
        }
 
-       pm_runtime_enable(dev);
-
        return 0;
 }
 
 static int rk_iommu_remove(struct platform_device *pdev)
 {
        return 0;
 }
 
 static int rk_iommu_remove(struct platform_device *pdev)
 {
-       pm_runtime_disable(&pdev->dev);
-
        return 0;
 }
 
        return 0;
 }