diff options
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/cpuidle34xx.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c index 1d10c4aa9352..a26d6a08ae3f 100644 --- a/arch/arm/mach-omap2/cpuidle34xx.c +++ b/arch/arm/mach-omap2/cpuidle34xx.c | |||
@@ -22,6 +22,7 @@ | |||
22 | * published by the Free Software Foundation. | 22 | * published by the Free Software Foundation. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/sched.h> | ||
25 | #include <linux/cpuidle.h> | 26 | #include <linux/cpuidle.h> |
26 | 27 | ||
27 | #include <plat/prcm.h> | 28 | #include <plat/prcm.h> |
@@ -113,7 +114,7 @@ static int omap3_enter_idle(struct cpuidle_device *dev, | |||
113 | pwrdm_set_next_pwrst(mpu_pd, mpu_state); | 114 | pwrdm_set_next_pwrst(mpu_pd, mpu_state); |
114 | pwrdm_set_next_pwrst(core_pd, core_state); | 115 | pwrdm_set_next_pwrst(core_pd, core_state); |
115 | 116 | ||
116 | if (omap_irq_pending()) | 117 | if (omap_irq_pending() || need_resched()) |
117 | goto return_sleep_time; | 118 | goto return_sleep_time; |
118 | 119 | ||
119 | if (cx->type == OMAP3_STATE_C1) { | 120 | if (cx->type == OMAP3_STATE_C1) { |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 4e87b61ca040..81ed252a0f8a 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -523,7 +523,7 @@ static void omap3_pm_idle(void) | |||
523 | if (!omap3_can_sleep()) | 523 | if (!omap3_can_sleep()) |
524 | goto out; | 524 | goto out; |
525 | 525 | ||
526 | if (omap_irq_pending()) | 526 | if (omap_irq_pending() || need_resched()) |
527 | goto out; | 527 | goto out; |
528 | 528 | ||
529 | omap_sram_idle(); | 529 | omap_sram_idle(); |