summaryrefslogtreecommitdiff
path: root/drivers/dma/imx-sdma.c
diff options
context:
space:
mode:
authorRobin Gong <b38343@freescale.com>2015-08-19 15:32:44 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:21:58 +0800
commit5940eab2670a36b7fdf2cadf334835b39fe10f86 (patch)
tree836483d52aa1dd007713075ed65bc2dbf377233c /drivers/dma/imx-sdma.c
parent589ab0cac266a3e83305c6a2389f06d775f3ae0b (diff)
MLK-11385 dma: imx-sdma: enable clock before context restored
fix sdma driver resume back failed if SDMA clock disabled before suspend: PM: noirq resume of devices complete after 0.802 msecs imx-sdma 30bd0000.sdma: Timeout waiting for CH0 ready imx-sdma 30bd0000.sdma: loaded firmware 4.1 imx-sdma 30bd0000.sdma: restore context error! dpm_run_callback(): sdma_resume+0x0/0x1c8 returns -110 PM: Device 30bd0000.sdma failed to resume early: error -110 Signed-off-by: Robin Gong <b38343@freescale.com>
Diffstat (limited to 'drivers/dma/imx-sdma.c')
-rw-r--r--drivers/dma/imx-sdma.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index 9d8d9421f966..cedd4c7e3f68 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -2258,8 +2258,6 @@ static int sdma_resume(struct device *dev)
/* prepare priority for channel0 to start */
sdma_set_channel_priority(&sdma->channel[0], MXC_SDMA_DEFAULT_PRIORITY);
- clk_disable(sdma->clk_ipg);
- clk_disable(sdma->clk_ahb);
ret = sdma_get_firmware(sdma, sdma->fw_name);
if (ret) {
@@ -2273,6 +2271,9 @@ static int sdma_resume(struct device *dev)
return ret;
}
+ clk_disable(sdma->clk_ipg);
+ clk_disable(sdma->clk_ahb);
+
return 0;
}
#endif