diff mbox

[12/17] OMAP2/3: Do not enable AUTOIDLE in interrupt controller

Message ID 1F18D6510CF0474A8C9500565A7E41A210F69EEFFB@NOK-EUMSG-02.mgdnok.nokia.com (mailing list archive)
State Superseded
Delegated to: Kevin Hilman
Headers show

Commit Message

Tero Kristo Oct. 19, 2009, 10:18 a.m. UTC
None
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 210a806..7a98321 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -93,6 +93,8 @@  u32 voltage_off_while_idle;
                OMAP3430_ST_GPT5_MASK|OMAP3430_ST_GPT4_MASK|\
                OMAP3430_ST_GPT3_MASK|OMAP3430_ST_GPT2_MASK)

+#define INTC_SYSCONFIG                 0x10
+
 struct power_state {
        struct powerdomain *pwrdm;
        u32 next_state;
@@ -505,6 +507,12 @@  void omap_sram_idle(void)
                prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN);
                omap3_enable_io_chain();
        }
+       /*
+        * Disable INTC autoidle as it can cause interrupt controller
+        * to enter unknown state with right combination of sleep / wakeup
+        * transitions
+        */
+       omap_writel(0x0, OMAP34XX_IC_BASE + INTC_SYSCONFIG);

        /*
        * On EMU/HS devices ROM code restores a SRDC value
@@ -561,6 +569,8 @@  void omap_sram_idle(void)
                                                OMAP3430_GR_MOD,
                                                OMAP3_PRM_VOLTCTRL_OFFSET);
        }
+       /* Re-enable interrupt controller autoidle */
+       omap_writel(OMAP3430_AUTOIDLE, OMAP34XX_IC_BASE + INTC_SYSCONFIG);

        /*
         * Enable smartreflex after WFI. Only needed if we