Index: linux-2.6.23/arch/powerpc/kernel/idle.c
===================================================================
--- linux-2.6.23.orig/arch/powerpc/kernel/idle.c	2007-10-09 22:31:38.000000000 +0200
+++ linux-2.6.23/arch/powerpc/kernel/idle.c	2007-12-05 11:34:39.000000000 +0100
@@ -19,6 +19,7 @@
  * 2 of the License, or (at your option) any later version.
  */
 
+#include <linux/leds.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/smp.h>
@@ -50,6 +51,12 @@
 __setup("powersave=off", powersave_off);
 
 /*
+ * CPU activity indicator.
+ */
+void (*leds_idle)(int is_idle);
+EXPORT_SYMBOL(leds_idle);
+
+/*
  * The body of the idle task.
  */
 void cpu_idle(void)
@@ -59,6 +66,8 @@
 
 	set_thread_flag(TIF_POLLING_NRFLAG);
 	while (1) {
+ 		if (leds_idle)
+     	leds_idle(1);
 		while (!need_resched() && !cpu_should_die()) {
 			ppc64_runlatch_off();
 
@@ -92,8 +101,11 @@
 		ppc64_runlatch_on();
 		if (cpu_should_die())
 			cpu_die();
+    if (leds_idle)
+			leds_idle(0);
 		preempt_enable_no_resched();
 		schedule();
+
 		preempt_disable();
 	}
 }