diff -NurpP linux-2.6.33-xbox0.11pre1/drivers/xenon/smc-core.c linux-2.6.33-xbox0.11pre2/drivers/xenon/smc-core.c --- linux-2.6.33-xbox0.11pre1/drivers/xenon/smc-core.c 2010-03-30 00:17:31.000000000 +0200 +++ linux-2.6.33-xbox0.11pre2/drivers/xenon/smc-core.c 2010-04-01 22:00:02.000000000 +0200 @@ -188,13 +188,24 @@ static void show_logo(void) xenon_smc_message(msg); } -void xenon_smc_restart(char *cmd) +void xenon_smc_panic(char *str) { unsigned char msg[16] = {0x82, 0x04, 0x30, 0}; xenon_smc_message(msg); } +EXPORT_SYMBOL_GPL(xenon_smc_panic); + +void xenon_smc_restart(char *cmd) +{ + unsigned char msg[16] = {0x82, 0x04, 0x31, 0}; + + xenon_smc_message(msg); +} + +EXPORT_SYMBOL_GPL(xenon_smc_restart); + void xenon_smc_power_off(void) { unsigned char msg[16] = {0x82, 0x01, 0x00, 0}; @@ -202,11 +213,15 @@ void xenon_smc_power_off(void) xenon_smc_message(msg); } +EXPORT_SYMBOL_GPL(xenon_smc_power_off); + void xenon_smc_halt(void) { return; } +EXPORT_SYMBOL_GPL(xenon_smc_halt); + static const struct pci_device_id xenon_smc_pci_tbl[] = { { PCI_VDEVICE(MICROSOFT, 0x580d), 0 }, { } /* terminate list */ diff -NurpP linux-2.6.33-xbox0.11pre1/arch/powerpc/platforms/xenon/setup.c linux-2.6.33-xbox0.11pre2/arch/powerpc/platforms/xenon/setup.c --- linux-2.6.33-xbox0.11pre1/arch/powerpc/platforms/xenon/setup.c 2010-03-25 07:24:27.000000000 +0100 +++ linux-2.6.33-xbox0.11pre2/arch/powerpc/platforms/xenon/setup.c 2010-04-02 17:36:59.000000000 +0200 @@ -73,14 +73,20 @@ static int __init xenon_probe(void) return 1; } +void xenon_smc_panic(char *str); + static void xenon_panic(char *str) { smp_send_stop(); +#if 0 printk("\n"); printk(" System does not reboot automatically.\n"); printk(" Please press POWER button.\n"); printk("\n"); - +#else + printk(" System restart after panic ... \n"); + xenon_smc_panic(str); +#endif local_irq_disable(); while (1) ; }