OSDN Git Service

dmaengine: tegra210-adma: update system sleep callbacks
authorSameer Pujar <spujar@nvidia.com>
Wed, 13 Mar 2019 11:32:37 +0000 (17:02 +0530)
committerVinod Koul <vkoul@kernel.org>
Mon, 25 Mar 2019 04:53:55 +0000 (10:23 +0530)
If the driver is active till late suspend, where runtime PM cannot run,
force suspend is essential in such case to put the device in low power
state. Thus pm_runtime_force_suspend and pm_runtime_force_resume are
used as system sleep callbacks during system wide PM transitions.
Late system sleep callbacks are used to ensure, for instance, that the
sound core has suspended any on-going activity, including stopping the
ADMA if active, before we attempt to suspend the ADMA.

Suggested-by: Jonathan Hunter <jonathanh@nvidia.com>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/tegra210-adma.c

index 650cd9c..253d312 100644 (file)
@@ -796,17 +796,11 @@ static int tegra_adma_remove(struct platform_device *pdev)
        return 0;
 }
 
-#ifdef CONFIG_PM_SLEEP
-static int tegra_adma_pm_suspend(struct device *dev)
-{
-       return pm_runtime_suspended(dev) == false;
-}
-#endif
-
 static const struct dev_pm_ops tegra_adma_dev_pm_ops = {
        SET_RUNTIME_PM_OPS(tegra_adma_runtime_suspend,
                           tegra_adma_runtime_resume, NULL)
-       SET_SYSTEM_SLEEP_PM_OPS(tegra_adma_pm_suspend, NULL)
+       SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
+                                    pm_runtime_force_resume)
 };
 
 static struct platform_driver tegra_admac_driver = {