Hi Ralf,
This patch had added cpu_wait() for NEC VR41xx.
Please apply this patch to v2.6 CVS tree.
Yoichi
Signed-off-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
diff -urN -X dontdiff b-orig/arch/mips/kernel/cpu-probe.c
b/arch/mips/kernel/cpu-probe.c
--- b-orig/arch/mips/kernel/cpu-probe.c Sun Oct 31 21:49:07 2004
+++ b/arch/mips/kernel/cpu-probe.c Wed Nov 17 22:51:36 2004
@@ -85,11 +85,9 @@
case CPU_R3081:
case CPU_R3081E:
cpu_wait = r3081_wait;
- printk(" available.\n");
break;
case CPU_TX3927:
cpu_wait = r39xx_wait;
- printk(" available.\n");
break;
case CPU_R4200:
/* case CPU_R4300: */
@@ -110,7 +108,6 @@
case CPU_24K:
case CPU_25KF:
cpu_wait = r4k_wait;
- printk(" available.\n");
break;
#ifdef CONFIG_PM
case CPU_AU1000:
@@ -118,17 +115,19 @@
case CPU_AU1500:
if (au1k_wait_ptr != NULL) {
cpu_wait = au1k_wait_ptr;
- printk(" available.\n");
}
else {
- printk(" unavailable.\n");
}
break;
#endif
default:
- printk(" unavailable.\n");
break;
}
+
+ if (cpu_wait)
+ printk(" available.\n");
+ else
+ printk(" unavailable.\n");
}
void __init check_bugs32(void)
diff -urN -X dontdiff b-orig/arch/mips/vr41xx/common/pmu.c
b/arch/mips/vr41xx/common/pmu.c
--- b-orig/arch/mips/vr41xx/common/pmu.c Thu May 27 02:11:11 2004
+++ b/arch/mips/vr41xx/common/pmu.c Wed Nov 17 22:58:09 2004
@@ -22,6 +22,7 @@
#include <linux/types.h>
#include <asm/cpu.h>
+#include <asm/cpu-features.h>
#include <asm/io.h>
#include <asm/reboot.h>
#include <asm/system.h>
@@ -29,6 +30,17 @@
#define PMUCNT2REG KSEG1ADDR(0x0f0000c6)
#define SOFTRST 0x0010
+static void vr41xx_cpu_wait(void)
+{
+ __asm__ __volatile__(
+ ".set\tmips3\n\t"
+ "standby\n\t"
+ "nop\n\t"
+ "nop\n\t"
+ "nop\n\t"
+ ".set\tmips0");
+}
+
static inline void software_reset(void)
{
uint16_t val;
@@ -70,6 +82,8 @@
static int __init vr41xx_pmu_init(void)
{
+ cpu_wait = vr41xx_cpu_wait;
+
_machine_restart = vr41xx_restart;
_machine_halt = vr41xx_halt;
_machine_power_off = vr41xx_power_off;
diff -urN -X dontdiff b-orig/include/asm-mips/cpu-features.h
b/include/asm-mips/cpu-features.h
--- b-orig/include/asm-mips/cpu-features.h Tue Aug 17 21:07:18 2004
+++ b/include/asm-mips/cpu-features.h Wed Nov 17 22:57:04 2004
@@ -124,4 +124,6 @@
#define cpu_scache_line_size() current_cpu_data.scache.linesz
#endif
+extern void (*cpu_wait)(void);
+
#endif /* __ASM_CPU_FEATURES_H */
|