]> xenbits.xensource.com Git - xen.git/commitdiff
arm: Put the CPU into a sleep state in the idle loop
authorTim Deegan <tim@xen.org>
Tue, 13 Mar 2012 15:11:00 +0000 (15:11 +0000)
committerTim Deegan <tim@xen.org>
Tue, 13 Mar 2012 15:11:00 +0000 (15:11 +0000)
The ARM doesn't actually say that the WFI instruction will return
immediately if CPSR.I is clear and an instruction is pending, but
this seems to match up with how linux uses it.

Signed-off-by: Tim Deegan <tim@xen.org>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
xen/arch/arm/domain.c

index e1d500df5c7dbcc6371fd79fcfd52a32fcf13296..edaff2252a7221dfc9bb0fbd07bca6335556e67f 100644 (file)
@@ -34,7 +34,11 @@ void idle_loop(void)
         if ( cpu_is_offline(smp_processor_id()) )
             stop_cpu();
 
-        /* TODO: (*pm_idle)(); */
+        local_irq_disable();
+        if ( cpu_is_haltable(smp_processor_id()) )
+            asm volatile ("dsb; wfi");
+        local_irq_enable();
+
         do_tasklet();
         do_softirq();
     }