diff -urN -X ignore orig/linux-2.4.21-pre4/arch/mips/kernel/cpu-probe.c new/linux-2.4.21-pre4/arch/mips/kernel/cpu-probe.c --- orig/linux-2.4.21-pre4/arch/mips/kernel/cpu-probe.c Wed Jul 2 09:21:43 2003 +++ new/linux-2.4.21-pre4/arch/mips/kernel/cpu-probe.c Mon Feb 9 17:07:57 2004 @@ -51,6 +51,17 @@ #endif } +static void vr41xx_wait(void) +{ +#ifdef CONFIG_CPU_VR41XX + __asm__(".set\tnoreorder\n\t" + ".word\t0x42000021\t# standby\n" + "nop\n" + "nop\n" + ".set\treorder"); +#endif +} + static inline void check_wait(void) { struct cpuinfo_mips *c = ¤t_cpu_data; @@ -90,6 +101,15 @@ cpu_wait = au1k_wait; printk(" available.\n"); break; + case CPU_VR4111: + case CPU_VR4121: + case CPU_VR4122: + case CPU_VR4131: + case CPU_VR4181: + case CPU_VR4181A: + cpu_wait = vr41xx_wait; + printk(" available.\n"); + break; default: printk(" unavailable.\n"); break; diff -urN -X ignore orig/linux-2.4.21-pre4/arch/mips/vr41xx/common/reset.c new/linux-2.4.21-pre4/arch/mips/vr41xx/common/reset.c --- orig/linux-2.4.21-pre4/arch/mips/vr41xx/common/reset.c Mon Dec 2 09:24:51 2002 +++ new/linux-2.4.21-pre4/arch/mips/vr41xx/common/reset.c Mon Feb 9 17:07:57 2004 @@ -28,7 +28,13 @@ void vr41xx_halt(void) { printk(KERN_NOTICE "\n** You can safely turn off the power\n"); - while (1); + while (1) { + __asm__(".set\tnoreorder\n\t" + ".word\t0x42000022\t# suspend\n" + "nop\n" + "nop\n" + ".set\treorder"); + } } void vr41xx_power_off(void)