]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/cpuidle/cpuidle.c
[ARM] 4980/1: [AT91] emQbit ECB_AT91 board support
[linux-2.6-omap-h63xx.git] / drivers / cpuidle / cpuidle.c
index 2c4b2d47973e195cbb0422a9b539400a2ad5ef5e..d73663a52324b89b93a7eb68f2fe0df9d21fbe26 100644 (file)
@@ -27,6 +27,17 @@ static void (*pm_idle_old)(void);
 
 static int enabled_devices;
 
+#if defined(CONFIG_ARCH_HAS_CPU_IDLE_WAIT)
+static void cpuidle_kick_cpus(void)
+{
+       cpu_idle_wait();
+}
+#elif defined(CONFIG_SMP)
+# error "Arch needs cpu_idle_wait() equivalent here"
+#else /* !CONFIG_ARCH_HAS_CPU_IDLE_WAIT && !CONFIG_SMP */
+static void cpuidle_kick_cpus(void) {}
+#endif
+
 /**
  * cpuidle_idle_call - the main idle loop
  *
@@ -83,7 +94,7 @@ void cpuidle_uninstall_idle_handler(void)
 {
        if (enabled_devices && (pm_idle != pm_idle_old)) {
                pm_idle = pm_idle_old;
-               cpu_idle_wait();
+               cpuidle_kick_cpus();
        }
 }
 
@@ -208,7 +219,8 @@ static void poll_idle_init(struct cpuidle_device *dev)
 
        cpuidle_set_statedata(state, NULL);
 
-       snprintf(state->name, CPUIDLE_NAME_LEN, "C0 (poll idle)");
+       snprintf(state->name, CPUIDLE_NAME_LEN, "C0");
+       snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE");
        state->exit_latency = 0;
        state->target_residency = 0;
        state->power_usage = -1;