diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
index 81780532b4e6c445ed386b8a5af861dacebced96..5a16998a99e2e21842d1405413d048ec3e6d2884 100644
--- a/drivers/dma/mxs-dma.c
+++ b/drivers/dma/mxs-dma.c
@@ -1,5 +1,6 @@
 /*
  * Copyright 2011-2015 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2017 NXP
  *
  * Refer to drivers/dma/imx-sdma.c
  *
@@ -720,8 +721,8 @@ 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;
+	int ret;
 
 	ret = mxs_dma_init_rpm(mxs_dma);
 	if (ret)
@@ -749,10 +750,10 @@ static int mxs_dma_init(struct mxs_dma_engine *mxs_dma)
 	writel(MXS_DMA_CHANNELS_MASK << MXS_DMA_CHANNELS,
 		mxs_dma->base + HW_APBHX_CTRL1 + STMP_OFFSET_REG_SET);
 
-err_clk:
 	pm_runtime_mark_last_busy(dev);
 	pm_runtime_put_autosuspend(dev);
 
+err_clk:
 	return ret;
 }
 
@@ -923,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;
 }