MLK-25473-5: dmaengine: imx-sdma: change to sdma_load_script in resume
authorRobin Gong <yibin.gong@nxp.com>
Fri, 30 Apr 2021 16:43:13 +0000 (00:43 +0800)
committerRobin Gong <yibin.gong@nxp.com>
Fri, 30 Apr 2021 17:36:54 +0000 (01:36 +0800)
Change to sdma_load_script instead of sdma_get_firmware to load firmware.
Otherwise, below warning log may come out during suspend/resume:

[ 3199.782909] imx-sdma 30e10000.dma-controller: firmware found.
[ 3199.788740] imx-sdma 30e10000.dma-controller: failed to load firmware

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
drivers/dma/imx-sdma.c

index 769841e..66c2f81 100644 (file)
@@ -2660,7 +2660,6 @@ static int sdma_resume(struct device *dev)
 {
        struct platform_device *pdev = to_platform_device(dev);
        struct sdma_engine *sdma = platform_get_drvdata(pdev);
-       unsigned long timeout = jiffies + msecs_to_jiffies(2);
        int i, ret;
 
        /* Do nothing if not i.MX6SX or i.MX7D, i.MX8MP*/
@@ -2705,19 +2704,8 @@ static int sdma_resume(struct device *dev)
        /* prepare priority for channel0 to start */
        sdma_set_channel_priority(&sdma->channel[0], MXC_SDMA_MAX_PRIORITY);
 
-       ret = sdma_get_firmware(sdma, sdma->fw_name);
-       if (ret) {
-               dev_warn(&pdev->dev, "failed to get firmware\n");
-               return ret;
-       }
-       /* wait firmware loaded */
-       do {
-               if (time_after(jiffies, timeout)) {
-                       dev_warn(&pdev->dev, "failed to load firmware\n");
-                       break;
-               }
-               usleep_range(50, 500);
-       } while (!sdma->fw_loaded);
+       if (sdma_load_script(sdma))
+               dev_warn(sdma->dev, "failed to load firmware.\n");
 
        ret = sdma_save_restore_context(sdma, false);
        if (ret)