static void ps3_sys_manager_fin(struct ps3_system_bus_device *dev) { ps3_sys_manager_send_request_shutdown(dev); pr_emerg("System Halted, OK to turn off power\n"); while (ps3_sys_manager_handle_msg(dev)) { lv1_pause(0); } while (1) { lv1_pause(1); } }
void ps3_sys_manager_halt(void) { pr_emerg("System Halted, OK to turn off power\n"); local_irq_disable(); while (1) lv1_pause(1); }
static void ps3_sys_manager_fin(struct ps3_system_bus_device *dev) { ps3_sys_manager_send_request_shutdown(dev); pr_emerg("System Halted, OK to turn off power\n"); while (ps3_sys_manager_handle_msg(dev)) { /* pause until next DEC interrupt */ lv1_pause(0); } while (1) { /* pause, ignoring DEC interrupt */ lv1_pause(1); } }
static void ps3_power_save(void) { /* * lv1_pause() puts the PPE thread into inactive state until an * irq on an unmasked plug exists. MSR[EE] has no effect. * flags: 0 = wake on DEC interrupt, 1 = ignore DEC interrupt. */ lv1_pause(0); }
static void ps3_panic(char *str) { DBG("%s:%d %s\n", __func__, __LINE__, str); smp_send_stop(); printk("\n"); printk(" System does not reboot automatically.\n"); printk(" Please press POWER button.\n"); printk("\n"); while(1) lv1_pause(1); }
static void ps3_cpu_idle(void) { static volatile int pausing = 0; /* * XXX: It appears that the PS3 can livelock if both threads * call lv1_pause(0) simultaneously. */ if (!atomic_cmpset_int(&pausing, 0, 1)) return; lv1_pause(0); pausing = 0; }
static void ps3_cpu_idle(sbintime_t sbt) { lv1_pause(0); }
static void ps3_cpu_idle(void) { lv1_pause(0); }
static void ps3_power_save(void) { lv1_pause(0); }