[POWERPC] PS3: System manager support
Add PS3 system manager support and the ppc_md routines restart() and power_off(). The system manager provides an event notification mechanism for reporting events like thermal alert and button presses. It also provides support to control system shutdown and startup. Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
committed by
Paul Mackerras
parent
ea1547d311
commit
fde5efd0e5
@@ -42,6 +42,10 @@
|
||||
#define DBG(fmt...) do{if(0)printk(fmt);}while(0)
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_SMP)
|
||||
static void smp_send_stop(void) {}
|
||||
#endif
|
||||
|
||||
int ps3_get_firmware_version(union ps3_firmware_version *v)
|
||||
{
|
||||
int result = lv1_get_version_info(&v->raw);
|
||||
@@ -66,22 +70,35 @@ static void ps3_power_save(void)
|
||||
lv1_pause(0);
|
||||
}
|
||||
|
||||
static void ps3_restart(char *cmd)
|
||||
{
|
||||
DBG("%s:%d cmd '%s'\n", __func__, __LINE__, cmd);
|
||||
|
||||
smp_send_stop();
|
||||
ps3_sys_manager_restart(); /* never returns */
|
||||
}
|
||||
|
||||
static void ps3_power_off(void)
|
||||
{
|
||||
DBG("%s:%d\n", __func__, __LINE__);
|
||||
|
||||
smp_send_stop();
|
||||
ps3_sys_manager_power_off(); /* never returns */
|
||||
}
|
||||
|
||||
static void ps3_panic(char *str)
|
||||
{
|
||||
DBG("%s:%d %s\n", __func__, __LINE__, str);
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
smp_send_stop();
|
||||
#endif
|
||||
printk("\n");
|
||||
printk(" System does not reboot automatically.\n");
|
||||
printk(" Please press POWER button.\n");
|
||||
printk("\n");
|
||||
|
||||
for (;;) ;
|
||||
while(1);
|
||||
}
|
||||
|
||||
|
||||
static void prealloc(struct ps3_prealloc *p)
|
||||
{
|
||||
if (!p->size)
|
||||
@@ -219,6 +236,8 @@ define_machine(ps3) {
|
||||
.get_rtc_time = ps3_get_rtc_time,
|
||||
.calibrate_decr = ps3_calibrate_decr,
|
||||
.progress = ps3_progress,
|
||||
.restart = ps3_restart,
|
||||
.power_off = ps3_power_off,
|
||||
#if defined(CONFIG_KEXEC)
|
||||
.kexec_cpu_down = ps3_kexec_cpu_down,
|
||||
.machine_kexec = ps3_machine_kexec,
|
||||
|
Reference in New Issue
Block a user