Loongson: Cleanup the halt and poweroff action
PATCH 1/1 Loongson: Cleanup the halt and poweroff action
(Add linux-mips <[email protected]> into the CC: list to make the patchwork get it!)
From: Wu Zhangjin <[email protected]>
In the old source code, I have let halt and poweroff do the same action, but in reality, they have different meanings.
As the manpage of shutdown shows:
-r Reboot after shutdown. -H Halt action is to halt or drop into boot monitor on systems that support it. -P Halt action is to turn off the power.
and in the real world, some machines(e.g. NAS) did not provide a power button and the shutdown works as reset, so, we need to provide a mechanism to let the users turn off the power safely without breaking the system, such a mechanism is "halt", which only put the system into a dead loop or a power-save mode and print some information to the screen to tell the users to turn off the power safely.
$ shutdown -hH now /* loongson_halt, not turn off the power */ $ shutdown -hP now /* loongson_poweroff, work as poweroff */
--- arch/mips/loongson/common/reset.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-)
arch/mips/loongson/common/reset.c +11 -2
@@ -25,17 +25,26 @@ static void loongson_restart(char *command) ((void (*)(void ))ioremap_nocache (LOONGSON_BOOT_BASE ,4 )) (); } -static void loongson_halt (void ) +static void loongson_poweroff (void ) {mach_prepare_shutdown ();unreachable (); } +static void loongson_halt (void ) +{ +pr_notice ("\n\n** You can safely turn off the power now **\n\n" ); +while (1 ) { +if (cpu_wait) +cpu_wait (); + } +} +static int __init mips_reboot_setup (void ) { _machine_restart = loongson_restart; _machine_halt = loongson_halt; - pm_power_off = loongson_halt; + pm_power_off = loongson_poweroff;return 0 ; }
Signature · 1 line
1.6.6
On Wed, Jan 27, 2010 at 10:39:46PM +0800, Wu Zhangjin wrote:
Thanks, queued for 2.6.34.
Ralf