ARM: OMAP3: PM: enable sys_clkreq signalling
[pandora-kernel.git] / arch / arm / mach-omap2 / pm34xx.c
index f11825f..4889a08 100644 (file)
@@ -445,10 +445,6 @@ void omap_sram_idle(void)
                }
                omap_uart_resume_idle(0);
                omap_uart_resume_idle(1);
-               if (core_next_state == PWRDM_POWER_OFF)
-                       omap2_prm_clear_mod_reg_bits(OMAP3430_AUTO_OFF_MASK,
-                                              OMAP3430_GR_MOD,
-                                              OMAP3_PRM_VOLTCTRL_OFFSET);
                pwrdm_post_transition(core_pwrdm);
        }
        omap3_intc_resume_idle();
@@ -485,7 +481,6 @@ console_still_active:
 static void omap3_pm_idle(void)
 {
        local_irq_disable();
-       local_fiq_disable();
 
        if (omap_irq_pending() || need_resched())
                goto out;
@@ -499,7 +494,6 @@ static void omap3_pm_idle(void)
        trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id());
 
 out:
-       local_fiq_enable();
        local_irq_enable();
 }
 
@@ -738,6 +732,11 @@ static void __init prcm_setup_regs(void)
 
        omap3_iva_idle();
        omap3_d2d_idle();
+
+       /* enable sys_clkreq signalling */
+       omap2_prm_rmw_mod_reg_bits((OMAP3430_AUTO_OFF_MASK | OMAP3430_AUTO_RET_MASK
+               | OMAP3430_AUTO_SLEEP_MASK), OMAP3430_AUTO_RET_MASK,
+               OMAP3430_GR_MOD, OMAP3_PRM_VOLTCTRL_OFFSET);
 }
 
 void omap3_pm_off_mode_enable(int enable)
@@ -924,14 +923,12 @@ static int __init omap3_pm_init(void)
                                        "allocating for secure sram context\n");
 
                local_irq_disable();
-               local_fiq_disable();
 
                omap_dma_global_context_save();
                omap3_save_secure_ram_context();
                omap_dma_global_context_restore();
 
                local_irq_enable();
-               local_fiq_enable();
        }
 
        omap3_save_scratchpad_contents();