Commit | Line | Data |
---|---|---|
8925b0f8 NP |
1 | /* |
2 | * arch/arm/mach-gemini/idle.c | |
3 | */ | |
4 | ||
5 | #include <linux/init.h> | |
74c4137b | 6 | #include <asm/system_misc.h> |
8925b0f8 NP |
7 | #include <asm/proc-fns.h> |
8 | ||
9 | static void gemini_idle(void) | |
10 | { | |
11 | /* | |
12 | * Because of broken hardware we have to enable interrupts or the CPU | |
13 | * will never wakeup... Acctualy it is not very good to enable | |
14 | * interrupts first since scheduler can miss a tick, but there is | |
15 | * no other way around this. Platforms that needs it for power saving | |
f7b861b7 | 16 | * should enable it in init code, since by default it is |
8925b0f8 NP |
17 | * disabled. |
18 | */ | |
f7b861b7 TG |
19 | |
20 | /* FIXME: Enabling interrupts here is racy! */ | |
8925b0f8 NP |
21 | local_irq_enable(); |
22 | cpu_do_idle(); | |
23 | } | |
24 | ||
25 | static int __init gemini_idle_init(void) | |
26 | { | |
27 | arm_pm_idle = gemini_idle; | |
28 | return 0; | |
29 | } | |
30 | ||
31 | arch_initcall(gemini_idle_init); |