Skip to content

Commit

Permalink
powerpc/powernv: Hookup reboot and poweroff functions
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Benjamin Herrenschmidt committed Sep 20, 2011
1 parent daea117 commit ec27329
Showing 1 changed file with 26 additions and 6 deletions.
32 changes: 26 additions & 6 deletions arch/powerpc/platforms/powernv/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,19 +83,39 @@ static void pnv_show_cpuinfo(struct seq_file *m)
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)
Expand Down

0 comments on commit ec27329

Please sign in to comment.