If MPU goes to WFI in the idle thread, execution time becomes a bit slow and the JTAG Debugger doesn't work. This patch is needed for urgent works(e.g. booting and launching application) and debugging. To enable sleep_while_idle mode, use below setting. echo 1 > /sys/power/sleep_while_idle Signed-off-by: Kim Kyuwon <q1.kim@xxxxxxxxxxx> --- arch/arm/mach-omap2/cpuidle34xx.c | 3 +++ arch/arm/mach-omap2/pm34xx.c | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c index 630108c..1623c2f 100644 --- a/arch/arm/mach-omap2/cpuidle34xx.c +++ b/arch/arm/mach-omap2/cpuidle34xx.c @@ -87,6 +87,9 @@ static int omap3_enter_idle(struct cpuidle_device *dev, local_irq_disable(); local_fiq_disable(); + if (!enable_dyn_sleep) + goto return_sleep_time; + if (!enable_off_mode) { if (mpu_state < PWRDM_POWER_RET) mpu_state = PWRDM_POWER_RET; diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 9102cee..402409c 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -484,8 +484,6 @@ static int omap3_fclks_active(void) int omap3_can_sleep(void) { - if (!enable_dyn_sleep) - return 0; if (!omap_uart_can_sleep()) return 0; if (omap3_fclks_active()) @@ -545,6 +543,9 @@ static void omap3_pm_idle(void) local_irq_disable(); local_fiq_disable(); + if (!enable_dyn_sleep) + goto out; + if (!omap3_can_sleep()) goto out; -- 1.5.2.5 -- Kyuwon -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html