static void ps3_sys_manager_final_restart(struct ps3_system_bus_device *dev)
{
    BUG_ON(!dev);

    dev_dbg(&dev->core, "%s:%d\n", __func__, __LINE__);

    /* Check if we got here via a power button event. */

    if (ps3_sm_force_power_off) {
        dev_dbg(&dev->core, "%s:%d: forcing poweroff\n",
                __func__, __LINE__);
        ps3_sys_manager_final_power_off(dev);
    }

    ps3_vuart_cancel_async(dev);

    ps3_sys_manager_send_attr(dev, 0);
    ps3_sys_manager_send_next_op(dev, PS3_SM_NEXT_OP_LPAR_REBOOT,
                                 PS3_SM_WAKE_DEFAULT);
    ps3_sys_manager_send_request_shutdown(dev);

    printk(KERN_EMERG "System Halted, OK to turn off power\n");

    while(1)
        ps3_sys_manager_handle_msg(dev);
}
Example #2
0
static void ps3_sys_manager_final_restart(struct ps3_system_bus_device *dev)
{
    BUG_ON(!dev);

    dev_dbg(&dev->core, "%s:%d\n", __func__, __LINE__);



    if (ps3_sm_force_power_off) {
        dev_dbg(&dev->core, "%s:%d: forcing poweroff\n",
                __func__, __LINE__);
        ps3_sys_manager_final_power_off(dev);
    }

    ps3_vuart_cancel_async(dev);

    ps3_sys_manager_send_attr(dev, 0);
    ps3_sys_manager_send_next_op(dev, PS3_SM_NEXT_OP_SYS_REBOOT,
                                 user_wake_sources);

    ps3_sys_manager_fin(dev);
}