MLK-16786: dma: mxs-dma: fix the unbalanced runtime pm counter
authorHan Xu <han.xu@nxp.com>
Wed, 8 Nov 2017 21:55:27 +0000 (15:55 -0600)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:39:11 +0000 (15:39 -0500)
mxs-dma init function will call runtime pm init, the redundant
pm_runtime_force_resume will mess up the counter. Also remove some
unnecessary code.

 BuildInfo:
  - SCFW 66189d08, IMX-MKIMAGE ea027c4b, ATF
  - U-Boot 2017.03-imx_4.9.51_8qm_beta1_8qxp_alpha+g325ac1e

Signed-off-by: Han Xu <han.xu@nxp.com>
Reviewed-by: Frank Li <frank.li@nxp.com>
drivers/dma/mxs-dma.c

index 7920063..f585b27 100644 (file)
@@ -729,18 +729,11 @@ static int mxs_dma_init_rpm(struct mxs_dma_engine *mxs_dma)
 static int mxs_dma_init(struct mxs_dma_engine *mxs_dma)
 {
        int ret;
-       struct device *dev = &mxs_dma->pdev->dev;
 
        ret = mxs_dma_init_rpm(mxs_dma);
        if (ret)
                return ret;
 
-       ret = pm_runtime_get_sync(dev);
-       if (ret < 0) {
-               dev_err(dev, "Failed to enable clock\n");
-               return ret;
-       }
-
        ret = stmp_reset_block(mxs_dma->base);
        if (ret)
                goto err_clk;
@@ -758,9 +751,6 @@ static int mxs_dma_init(struct mxs_dma_engine *mxs_dma)
                mxs_dma->base + HW_APBHX_CTRL1 + STMP_OFFSET_REG_SET);
 
 err_clk:
-       pm_runtime_mark_last_busy(dev);
-       pm_runtime_put_autosuspend(dev);
-
        return ret;
 }
 
@@ -934,13 +924,10 @@ static int mxs_dma_pm_resume(struct device *dev)
        struct mxs_dma_engine *mxs_dma = dev_get_drvdata(dev);
        int ret;
 
-       ret = pm_runtime_force_resume(dev);
-       if (ret)
-               return ret;
-
        ret = mxs_dma_init(mxs_dma);
        if (ret)
                return ret;
+
        return 0;
 }