diff options
| author | Tony Lindgren <tony@atomide.com> | 2005-06-29 14:59:48 -0400 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-06-29 14:59:48 -0400 | 
| commit | b3402cf50efead37dd9553b90fbf1486e09fb78e (patch) | |
| tree | 75e2bf1533a10c7e4540cb7a925089a7fd3b6d91 /arch/arm/mach-omap/pm.c | |
| parent | 20f720ccce8864583365d844d48d3fe8d0d171ad (diff) | |
[PATCH] ARM: 2771/1: Dynamic Tick support for OMAP, take 4
Patch from Tony Lindgren
This patch adds support for Dynamic Tick Timer for OMAP.
This patch is an updated version of ARM patch 2642/1 to
make it work with the already integrated generic ARM
dyntick support.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
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 | /* | 
