MIPS: Loongson: Cleanup the halt and poweroff action
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 */ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com> Tested-by: Liu Shiwei <liushiwei@gmail.com> Cc: Liu Shiwei <liushiwei@gmail.com> Cc: linux-mips <linux-mips@linux-mips.org> Patchwork: http://patchwork.linux-mips.org/patch/883/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
e52dd9fc6b
commit
fc48c41af8
1 changed files with 11 additions and 2 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue