summaryrefslogtreecommitdiffstats
path: root/arch/mips64/sgi-ip27
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-06-07 22:03:47 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-06-07 22:03:47 +0000
commit1db92498b072a7a1a82171ea2222fd29904c6171 (patch)
tree1130627b1e1026b65a43b933d60f80434569594f /arch/mips64/sgi-ip27
parent86a87919b5603913664609f95cbf1be8cf5373a6 (diff)
Reboot was doing halt and halt was crashing the machine, fixed.
Diffstat (limited to 'arch/mips64/sgi-ip27')
-rw-r--r--arch/mips64/sgi-ip27/ip27-reset.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/arch/mips64/sgi-ip27/ip27-reset.c b/arch/mips64/sgi-ip27/ip27-reset.c
index 388fb6026..c624e8cb3 100644
--- a/arch/mips64/sgi-ip27/ip27-reset.c
+++ b/arch/mips64/sgi-ip27/ip27-reset.c
@@ -1,13 +1,12 @@
-/* $Id$
- *
+/*
* 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
* for more details.
*
* Reset an IP27.
*
- * Copyright (C) 1997, 1998, 1999 by Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics, Inc.
+ * Copyright (C) 1997, 1998, 1999, 2000 by Ralf Baechle
+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
*/
#include <linux/config.h>
#include <linux/kernel.h>
@@ -42,7 +41,7 @@ void machine_restart(char *command)
#if 0
for (i = 0; i < numnodes; i++)
REMOTE_HUB_S(COMPACT_TO_NASID_NODEID(i), PROMOP_REG,
- PROMOP_RESTART);
+ PROMOP_REBOOT);
#else
LOCAL_HUB_S(NI_PORT_RESET, NPR_PORTRESET | NPR_LOCALRESET);
#endif
@@ -50,7 +49,15 @@ void machine_restart(char *command)
void machine_halt(void)
{
- ArcEnterInteractiveMode();
+ int i;
+
+#ifdef CONFIG_SMP
+ smp_send_stop();
+#endif
+ for (i = 0; i < numnodes; i++)
+ REMOTE_HUB_S(COMPACT_TO_NASID_NODEID(i), PROMOP_REG,
+ PROMOP_RESTART);
+ LOCAL_HUB_S(NI_PORT_RESET, NPR_PORTRESET | NPR_LOCALRESET);
}
void machine_power_off(void)