powerpc/powernv: Hookup reboot and poweroff functions
This calls the respective HAL functions, and spin on hal_poll_event() to ensure the HAL has a chance to communicate with the FSP to trigger the reboot or shutdown operation Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
daea1175a9
commit
ec27329ffb
|
@ -83,19 +83,39 @@ static void pnv_show_cpuinfo(struct seq_file *m)
|
||||||
of_node_put(root);
|
of_node_put(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pnv_restart(char *cmd)
|
static void __noreturn pnv_restart(char *cmd)
|
||||||
{
|
{
|
||||||
for (;;);
|
long rc = OPAL_BUSY;
|
||||||
|
|
||||||
|
while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) {
|
||||||
|
rc = opal_cec_reboot();
|
||||||
|
if (rc == OPAL_BUSY_EVENT)
|
||||||
|
opal_poll_events(NULL);
|
||||||
|
else
|
||||||
|
mdelay(10);
|
||||||
|
}
|
||||||
|
for (;;)
|
||||||
|
opal_poll_events(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pnv_power_off(void)
|
static void __noreturn pnv_power_off(void)
|
||||||
{
|
{
|
||||||
for (;;);
|
long rc = OPAL_BUSY;
|
||||||
|
|
||||||
|
while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) {
|
||||||
|
rc = opal_cec_power_down(0);
|
||||||
|
if (rc == OPAL_BUSY_EVENT)
|
||||||
|
opal_poll_events(NULL);
|
||||||
|
else
|
||||||
|
mdelay(10);
|
||||||
|
}
|
||||||
|
for (;;)
|
||||||
|
opal_poll_events(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pnv_halt(void)
|
static void __noreturn pnv_halt(void)
|
||||||
{
|
{
|
||||||
for (;;);
|
pnv_power_off();
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned long __init pnv_get_boot_time(void)
|
static unsigned long __init pnv_get_boot_time(void)
|
||||||
|
|
Loading…
Reference in New Issue