diff options
Diffstat (limited to 'arch/arm/mach-omap/pm.c')
-rw-r--r-- | arch/arm/mach-omap/pm.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/arch/arm/mach-omap/pm.c b/arch/arm/mach-omap/pm.c index 00fac155df2a..6b03ccdc1e92 100644 --- a/arch/arm/mach-omap/pm.c +++ b/arch/arm/mach-omap/pm.c | |||
@@ -41,7 +41,9 @@ | |||
41 | #include <linux/pm.h> | 41 | #include <linux/pm.h> |
42 | 42 | ||
43 | #include <asm/io.h> | 43 | #include <asm/io.h> |
44 | #include <asm/mach/time.h> | ||
44 | #include <asm/mach-types.h> | 45 | #include <asm/mach-types.h> |
46 | |||
45 | #include <asm/arch/omap16xx.h> | 47 | #include <asm/arch/omap16xx.h> |
46 | #include <asm/arch/pm.h> | 48 | #include <asm/arch/pm.h> |
47 | #include <asm/arch/mux.h> | 49 | #include <asm/arch/mux.h> |
@@ -80,13 +82,13 @@ void omap_pm_idle(void) | |||
80 | return; | 82 | return; |
81 | } | 83 | } |
82 | mask32 = omap_readl(ARM_SYSST); | 84 | mask32 = omap_readl(ARM_SYSST); |
83 | local_fiq_enable(); | ||
84 | local_irq_enable(); | ||
85 | 85 | ||
86 | #if defined(CONFIG_OMAP_32K_TIMER) && defined(CONFIG_NO_IDLE_HZ) | 86 | /* |
87 | /* Override timer to use VST for the next cycle */ | 87 | * Since an interrupt may set up a timer, we don't want to |
88 | omap_32k_timer_next_vst_interrupt(); | 88 | * reprogram the hardware timer with interrupts enabled. |
89 | #endif | 89 | * Re-enable interrupts only after returning from idle. |
90 | */ | ||
91 | timer_dyn_reprogram(); | ||
90 | 92 | ||
91 | if ((mask32 & DSP_IDLE) == 0) { | 93 | if ((mask32 & DSP_IDLE) == 0) { |
92 | __asm__ volatile ("mcr p15, 0, r0, c7, c0, 4"); | 94 | __asm__ volatile ("mcr p15, 0, r0, c7, c0, 4"); |
@@ -102,6 +104,8 @@ void omap_pm_idle(void) | |||
102 | 104 | ||
103 | func_ptr(); | 105 | func_ptr(); |
104 | } | 106 | } |
107 | local_fiq_enable(); | ||
108 | local_irq_enable(); | ||
105 | } | 109 | } |
106 | 110 | ||
107 | /* | 111 | /* |