Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / arm / mach-gemini / idle.c
diff --git a/kernel/arch/arm/mach-gemini/idle.c b/kernel/arch/arm/mach-gemini/idle.c
new file mode 100644 (file)
index 0000000..ddf8ec9
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * arch/arm/mach-gemini/idle.c
+ */
+
+#include <linux/init.h>
+#include <asm/system_misc.h>
+#include <asm/proc-fns.h>
+
+static void gemini_idle(void)
+{
+       /*
+        * Because of broken hardware we have to enable interrupts or the CPU
+        * will never wakeup... Acctualy it is not very good to enable
+        * interrupts first since scheduler can miss a tick, but there is
+        * no other way around this. Platforms that needs it for power saving
+        * should enable it in init code, since by default it is
+        * disabled.
+        */
+
+       /* FIXME: Enabling interrupts here is racy! */
+       local_irq_enable();
+       cpu_do_idle();
+}
+
+static int __init gemini_idle_init(void)
+{
+       arm_pm_idle = gemini_idle;
+       return 0;
+}
+
+arch_initcall(gemini_idle_init);