dmaengine: zynqmp_dma: use pm_runtime_resume_and_get() instead of pm_runtime_get_sync()
authorRadhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Tue, 10 May 2022 07:12:42 +0000 (12:42 +0530)
committerVinod Koul <vkoul@kernel.org>
Mon, 16 May 2022 12:51:47 +0000 (18:21 +0530)
pm_runtime_resume_and_get() automatically handle dev->power.usage_count
decrement on errors, so prefer using it and also implement it's error
handling.

Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Link: https://lore.kernel.org/r/1652166762-18317-4-git-send-email-radhey.shyam.pandey@xilinx.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/xilinx/zynqmp_dma.c

index 915dbe6..dc299ab 100644 (file)
@@ -1078,7 +1078,11 @@ static int zynqmp_dma_probe(struct platform_device *pdev)
        pm_runtime_set_autosuspend_delay(zdev->dev, ZDMA_PM_TIMEOUT);
        pm_runtime_use_autosuspend(zdev->dev);
        pm_runtime_enable(zdev->dev);
-       pm_runtime_get_sync(zdev->dev);
+       ret = pm_runtime_resume_and_get(zdev->dev);
+       if (ret < 0) {
+               dev_err(&pdev->dev, "device wakeup failed.\n");
+               pm_runtime_disable(zdev->dev);
+       }
        if (!pm_runtime_enabled(zdev->dev)) {
                ret = zynqmp_dma_runtime_resume(zdev->dev);
                if (ret)