1/* 2 * arch/arm/mach-gemini/idle.c 3 */ 4 5#include <linux/init.h> 6#include <asm/system_misc.h> 7#include <asm/proc-fns.h> 8 9static 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 16 * should enable it in init code, since by default it is 17 * disabled. 18 */ 19 20 /* FIXME: Enabling interrupts here is racy! */ 21 local_irq_enable(); 22 cpu_do_idle(); 23} 24 25static int __init gemini_idle_init(void) 26{ 27 arm_pm_idle = gemini_idle; 28 return 0; 29} 30 31arch_initcall(gemini_idle_init); 32