summaryrefslogtreecommitdiffstats
path: root/arch/mips64/sgi-ip27/ip27-reset.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips64/sgi-ip27/ip27-reset.c')
-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)