diff options
Diffstat (limited to 'arch/arm/plat-omap/omap_device.c')
-rw-r--r-- | arch/arm/plat-omap/omap_device.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c index b93cfdc9a366..2526fa312b8a 100644 --- a/arch/arm/plat-omap/omap_device.c +++ b/arch/arm/plat-omap/omap_device.c | |||
@@ -573,6 +573,9 @@ static int _od_suspend_noirq(struct device *dev) | |||
573 | struct omap_device *od = to_omap_device(pdev); | 573 | struct omap_device *od = to_omap_device(pdev); |
574 | int ret; | 574 | int ret; |
575 | 575 | ||
576 | if (od->flags & OMAP_DEVICE_NO_IDLE_ON_SUSPEND) | ||
577 | return pm_generic_suspend_noirq(dev); | ||
578 | |||
576 | ret = pm_generic_suspend_noirq(dev); | 579 | ret = pm_generic_suspend_noirq(dev); |
577 | 580 | ||
578 | if (!ret && !pm_runtime_status_suspended(dev)) { | 581 | if (!ret && !pm_runtime_status_suspended(dev)) { |
@@ -590,6 +593,9 @@ static int _od_resume_noirq(struct device *dev) | |||
590 | struct platform_device *pdev = to_platform_device(dev); | 593 | struct platform_device *pdev = to_platform_device(dev); |
591 | struct omap_device *od = to_omap_device(pdev); | 594 | struct omap_device *od = to_omap_device(pdev); |
592 | 595 | ||
596 | if (od->flags & OMAP_DEVICE_NO_IDLE_ON_SUSPEND) | ||
597 | return pm_generic_resume_noirq(dev); | ||
598 | |||
593 | if ((od->flags & OMAP_DEVICE_SUSPENDED) && | 599 | if ((od->flags & OMAP_DEVICE_SUSPENDED) && |
594 | !pm_runtime_status_suspended(dev)) { | 600 | !pm_runtime_status_suspended(dev)) { |
595 | od->flags &= ~OMAP_DEVICE_SUSPENDED; | 601 | od->flags &= ~OMAP_DEVICE_SUSPENDED; |