diff options
| author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2014-04-15 09:18:41 -0400 |
|---|---|---|
| committer | Vinod Koul <vinod.koul@intel.com> | 2014-05-07 02:14:06 -0400 |
| commit | 067bd4fdfa17c3bbdac09b401667e967c81eb2b7 (patch) | |
| tree | 5f07291e776c37cf6b4c59952462e6a9b91cf71a /drivers/dma/dw | |
| parent | baca66f7960f60a7ed5884acf4eb1a76d868c43c (diff) | |
dmaengine: dw: move PM to suspend_late / resume_early stages
There is no need to use *_noirq version of suspend and resume PM callbacks. The
suspend_late / resume_early suit better (it was discussed in [1]) and in future
could be used for runtime PM support.
[1] http://www.spinics.net/lists/kernel/msg1650974.html
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/dw')
| -rw-r--r-- | drivers/dma/dw/platform.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/drivers/dma/dw/platform.c b/drivers/dma/dw/platform.c index 453822cc4f9d..c5b339af6be5 100644 --- a/drivers/dma/dw/platform.c +++ b/drivers/dma/dw/platform.c | |||
| @@ -256,7 +256,7 @@ MODULE_DEVICE_TABLE(acpi, dw_dma_acpi_id_table); | |||
| 256 | 256 | ||
| 257 | #ifdef CONFIG_PM_SLEEP | 257 | #ifdef CONFIG_PM_SLEEP |
| 258 | 258 | ||
| 259 | static int dw_suspend_noirq(struct device *dev) | 259 | static int dw_suspend_late(struct device *dev) |
| 260 | { | 260 | { |
| 261 | struct platform_device *pdev = to_platform_device(dev); | 261 | struct platform_device *pdev = to_platform_device(dev); |
| 262 | struct dw_dma_chip *chip = platform_get_drvdata(pdev); | 262 | struct dw_dma_chip *chip = platform_get_drvdata(pdev); |
| @@ -264,7 +264,7 @@ static int dw_suspend_noirq(struct device *dev) | |||
| 264 | return dw_dma_suspend(chip); | 264 | return dw_dma_suspend(chip); |
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | static int dw_resume_noirq(struct device *dev) | 267 | static int dw_resume_early(struct device *dev) |
| 268 | { | 268 | { |
| 269 | struct platform_device *pdev = to_platform_device(dev); | 269 | struct platform_device *pdev = to_platform_device(dev); |
| 270 | struct dw_dma_chip *chip = platform_get_drvdata(pdev); | 270 | struct dw_dma_chip *chip = platform_get_drvdata(pdev); |
| @@ -272,20 +272,10 @@ static int dw_resume_noirq(struct device *dev) | |||
| 272 | return dw_dma_resume(chip); | 272 | return dw_dma_resume(chip); |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | #else /* !CONFIG_PM_SLEEP */ | 275 | #endif /* CONFIG_PM_SLEEP */ |
| 276 | |||
| 277 | #define dw_suspend_noirq NULL | ||
| 278 | #define dw_resume_noirq NULL | ||
| 279 | |||
| 280 | #endif /* !CONFIG_PM_SLEEP */ | ||
| 281 | 276 | ||
| 282 | static const struct dev_pm_ops dw_dev_pm_ops = { | 277 | static const struct dev_pm_ops dw_dev_pm_ops = { |
| 283 | .suspend_noirq = dw_suspend_noirq, | 278 | SET_LATE_SYSTEM_SLEEP_PM_OPS(dw_suspend_late, dw_resume_early) |
| 284 | .resume_noirq = dw_resume_noirq, | ||
| 285 | .freeze_noirq = dw_suspend_noirq, | ||
| 286 | .thaw_noirq = dw_resume_noirq, | ||
| 287 | .restore_noirq = dw_resume_noirq, | ||
| 288 | .poweroff_noirq = dw_suspend_noirq, | ||
| 289 | }; | 279 | }; |
| 290 | 280 | ||
| 291 | static struct platform_driver dw_driver = { | 281 | static struct platform_driver dw_driver = { |
