diff options
author | Robin Gong <b38343@freescale.com> | 2015-08-19 15:32:44 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:21:58 +0800 |
commit | 5940eab2670a36b7fdf2cadf334835b39fe10f86 (patch) | |
tree | 836483d52aa1dd007713075ed65bc2dbf377233c /drivers/dma/imx-sdma.c | |
parent | 589ab0cac266a3e83305c6a2389f06d775f3ae0b (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.c | 5 |
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 |