Subject: [PATCH][1/2][MIPS] remove unneeded button check for reset

From: Yoichi Yuasa <[email-masked]>
Date: Wed, 12 Dec 2007 22:20:19 +0900

Removed unneeded button check for reset.
Because, the Cobalt has power switch.

Signed-off-by: Yoichi Yuasa <[email-masked]>

diff -pruN -X mips/Documentation/dontdiff mips-orig/arch/mips/cobalt/reset.c mips/arch/mips/cobalt/reset.c
--- mips-orig/arch/mips/cobalt/reset.c	2007-10-22 08:37:03.176567500 +0900
+++ mips/arch/mips/cobalt/reset.c	2007-10-22 09:28:23.004538000 +0900
@@ -10,7 +10,6 @@
  */
 #include <linux/init.h>
 #include <linux/io.h>
-#include <linux/jiffies.h>
 #include <linux/leds.h>
 
 #include <cobalt.h>
@@ -29,29 +28,14 @@ device_initcall(ledtrig_power_off_init);
 
 void cobalt_machine_halt(void)
 {
-	int state, last, diff;
-	unsigned long mark;
-
 	/*
 	 * turn on power off LED on RaQ
-	 *
-	 * restart if ENTER and SELECT are pressed
 	 */
-
-	last = COBALT_KEY_PORT;
-
 	led_trigger_event(power_off_led_trigger, LED_FULL);
 
-	for (state = 0;;) {
-		diff = COBALT_KEY_PORT ^ last;
-		last ^= diff;
-
-		if((diff & (COBALT_KEY_ENTER | COBALT_KEY_SELECT)) && !(~last & (COBALT_KEY_ENTER | COBALT_KEY_SELECT)))
-			writeb(RESET, RESET_PORT);
-
-		for (mark = jiffies; jiffies - mark < HZ;)
-			;
-	}
+	local_irq_disable();
+	printk(KERN_INFO "You can switch the machine off now.\n");
+	while (1) ;
 }
 
 void cobalt_machine_restart(char *command)
diff -pruN -X mips/Documentation/dontdiff mips-orig/include/asm-mips/mach-cobalt/cobalt.h mips/include/asm-mips/mach-cobalt/cobalt.h
--- mips-orig/include/asm-mips/mach-cobalt/cobalt.h	2007-10-22 08:40:46.866547250 +0900
+++ mips/include/asm-mips/mach-cobalt/cobalt.h	2007-10-22 09:27:42.101981750 +0900
@@ -1,5 +1,5 @@
 /*
- * Lowlevel hardware stuff for the MIPS based Cobalt microservers.
+ * The Cobalt board ID information.
  *
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
@@ -12,9 +12,6 @@
 #ifndef __ASM_COBALT_H
 #define __ASM_COBALT_H
 
-/*
- * The Cobalt board ID information.
- */
 extern int cobalt_board_id;
 
 #define COBALT_BRD_ID_QUBE1    0x3
@@ -22,14 +19,4 @@ extern int cobalt_board_id;
 #define COBALT_BRD_ID_QUBE2    0x5
 #define COBALT_BRD_ID_RAQ2     0x6
 
-#define COBALT_KEY_PORT		((~*(volatile unsigned int *) CKSEG1ADDR(0x1d000000) >> 24) & COBALT_KEY_MASK)
-# define COBALT_KEY_CLEAR	(1 << 1)
-# define COBALT_KEY_LEFT	(1 << 2)
-# define COBALT_KEY_UP		(1 << 3)
-# define COBALT_KEY_DOWN	(1 << 4)
-# define COBALT_KEY_RIGHT	(1 << 5)
-# define COBALT_KEY_ENTER	(1 << 6)
-# define COBALT_KEY_SELECT	(1 << 7)
-# define COBALT_KEY_MASK	0xfe
-
 #endif /* __ASM_COBALT_H */

---

From: Yoichi Yuasa <[email-masked]>
Date: Wed, 12 Dec 2007 22:23:13 +0900

Added cpu_wait() to machine_halt().
For the power reduction in halt.

diff -pruN -X mips/Documentation/dontdiff mips-orig/arch/mips/cobalt/reset.c mips/arch/mips/cobalt/reset.c
--- mips-orig/arch/mips/cobalt/reset.c	2007-10-22 09:32:10.074729000 +0900
+++ mips/arch/mips/cobalt/reset.c	2007-10-22 09:59:23.092786250 +0900
@@ -12,6 +12,8 @@
 #include <linux/io.h>
 #include <linux/leds.h>
 
+#include <asm/processor.h>
+
 #include <cobalt.h>
 
 #define RESET_PORT	((void __iomem *)CKSEG1ADDR(0x1c000000))
@@ -35,7 +37,10 @@ void cobalt_machine_halt(void)
 
 	local_irq_disable();
 	printk(KERN_INFO "You can switch the machine off now.\n");
-	while (1) ;
+	while (1) {
+		if (cpu_wait)
+			cpu_wait();
+	}
 }

---

From: Ralf Baechle <[email-masked]>
Date: Fri, 14 Dec 2007 01:07:15 +0000

> For the power reduction in halt.

Queued for 2.6.25.

Thanks,

  Ralf.

---

From: Ralf Baechle <[email-masked]>
Date: Fri, 14 Dec 2007 01:07:02 +0000

> Because, the Cobalt has power switch.

Queued for 2.6.25 with the printk removed.  If anywhere such notifications
should go to userspace.

Thanks,

  Ralf.