From: "kaiwei.liu" <kaiwei.liu@xxxxxxxxxx> In the probe of dma, it will allocate device memory and do some initalization settings. All operations are only at the software level and don't need the DMA hardware power on. It doesn't need to resume the device and set the device active as well. here delete unnecessary operation. Signed-off-by: kaiwei.liu <kaiwei.liu@xxxxxxxxxx> --- drivers/dma/sprd-dma.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c index 08fcf1ec368c..8ab5a9082fc5 100644 --- a/drivers/dma/sprd-dma.c +++ b/drivers/dma/sprd-dma.c @@ -1203,21 +1203,11 @@ static int sprd_dma_probe(struct platform_device *pdev) } platform_set_drvdata(pdev, sdev); - ret = sprd_dma_enable(sdev); - if (ret) - return ret; - - pm_runtime_set_active(&pdev->dev); - pm_runtime_enable(&pdev->dev); - - ret = pm_runtime_get_sync(&pdev->dev); - if (ret < 0) - goto err_rpm; ret = dma_async_device_register(&sdev->dma_dev); if (ret < 0) { dev_err(&pdev->dev, "register dma device failed:%d\n", ret); - goto err_register; + return ret; } sprd_dma_info.dma_cap = sdev->dma_dev.cap_mask; @@ -1226,16 +1216,11 @@ static int sprd_dma_probe(struct platform_device *pdev) if (ret) goto err_of_register; - pm_runtime_put(&pdev->dev); + pm_runtime_enable(&pdev->dev); return 0; err_of_register: dma_async_device_unregister(&sdev->dma_dev); -err_register: - pm_runtime_put_noidle(&pdev->dev); - pm_runtime_disable(&pdev->dev); -err_rpm: - sprd_dma_disable(sdev); return ret; } -- 2.17.1