diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-30 22:31:20 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-30 22:31:20 -0500 |
commit | 528ba4ef855bd184b7d68e3fa596b420fb4fa86a (patch) | |
tree | 9b7a296f2ae3942ca401bd099ae92d00bbe366a9 | |
parent | df6c0cd9a872ebf2298f5d66d8c789f62dbe35fc (diff) | |
parent | 21e9ac7b2dd96dfca997313bae6d9a8f642635c7 (diff) |
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
[MIPS] MIPS doesn't need compat_sys_getdents.
[MIPS] JMR3927: Fixup another victim of the irq pt_regs cleanup.
[MIPS] EMMA 2 / Markeins: struct resource takes physical addresses.
[MIPS] EMMA 2 / Markeins: Convert to name struct resource initialization.
[MIPS] EMMA 2 / Markeins: Formitting fixes split from actual address fixes.
[MIPS] EMMA 2 / Markeins: Fix build wreckage due to genirq wreckage.
[MIPS] Ocelot G: Fix build error and numerous warnings.
[MIPS] Fix return value of TXX9 SPI interrupt handler
[MIPS] Au1000: Fix warning about unused variable.
[MIPS] Wire up getcpu(2) and epoll_wait(2) syscalls.
[MIPS] Make SB1 cache flushes not to use on_each_cpu
[MIPS] Fix warning about unused definition in c-sb1.c
[MIPS] SMTC: Make 8 the default number of processors.
[MIPS] Oprofile: Fix MIPSxx counter number detection.
[MIPS] Au1xx0 code sets incorrect mips_hpt_frequency
[MIPS] Oprofile: fix on non-VSMP / non-SMTC SMP configurations.
-rw-r--r-- | arch/mips/Kconfig | 3 | ||||
-rw-r--r-- | arch/mips/au1000/common/time.c | 8 | ||||
-rw-r--r-- | arch/mips/emma2rh/common/irq_emma2rh.c | 2 | ||||
-rw-r--r-- | arch/mips/emma2rh/markeins/irq_markeins.c | 4 | ||||
-rw-r--r-- | arch/mips/emma2rh/markeins/platform.c | 88 | ||||
-rw-r--r-- | arch/mips/jmr3927/rbhma3100/irq.c | 3 | ||||
-rw-r--r-- | arch/mips/kernel/scall32-o32.S | 2 | ||||
-rw-r--r-- | arch/mips/kernel/scall64-64.S | 2 | ||||
-rw-r--r-- | arch/mips/kernel/scall64-n32.S | 2 | ||||
-rw-r--r-- | arch/mips/kernel/scall64-o32.S | 2 | ||||
-rw-r--r-- | arch/mips/mm/c-sb1.c | 18 | ||||
-rw-r--r-- | arch/mips/momentum/ocelot_g/ocelot_pld.h | 6 | ||||
-rw-r--r-- | arch/mips/momentum/ocelot_g/setup.c | 5 | ||||
-rw-r--r-- | arch/mips/oprofile/op_model_mipsxx.c | 12 | ||||
-rw-r--r-- | arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c | 8 | ||||
-rw-r--r-- | include/asm-mips/unistd.h | 19 |
16 files changed, 121 insertions, 63 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 14af6cce2fa2..74ba76378113 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -408,7 +408,7 @@ config MOMENCO_OCELOT_C | |||
408 | select SWAP_IO_SPACE | 408 | select SWAP_IO_SPACE |
409 | select SYS_HAS_CPU_RM7000 | 409 | select SYS_HAS_CPU_RM7000 |
410 | select SYS_SUPPORTS_32BIT_KERNEL | 410 | select SYS_SUPPORTS_32BIT_KERNEL |
411 | select SYS_SUPPORTS_64BIT_KERNEL | 411 | select SYS_SUPPORTS_64BIT_KERNEL if BROKEN |
412 | select SYS_SUPPORTS_BIG_ENDIAN | 412 | select SYS_SUPPORTS_BIG_ENDIAN |
413 | help | 413 | help |
414 | The Ocelot is a MIPS-based Single Board Computer (SBC) made by | 414 | The Ocelot is a MIPS-based Single Board Computer (SBC) made by |
@@ -1690,6 +1690,7 @@ config NR_CPUS | |||
1690 | depends on SMP | 1690 | depends on SMP |
1691 | default "64" if SGI_IP27 | 1691 | default "64" if SGI_IP27 |
1692 | default "2" | 1692 | default "2" |
1693 | default "8" if MIPS_MT_SMTC | ||
1693 | help | 1694 | help |
1694 | This allows you to specify the maximum number of CPUs which this | 1695 | This allows you to specify the maximum number of CPUs which this |
1695 | kernel will support. The maximum supported value is 32 for 32-bit | 1696 | kernel will support. The maximum supported value is 32 for 32-bit |
diff --git a/arch/mips/au1000/common/time.c b/arch/mips/au1000/common/time.c index 94f09194d63d..6768638883ea 100644 --- a/arch/mips/au1000/common/time.c +++ b/arch/mips/au1000/common/time.c | |||
@@ -82,7 +82,6 @@ unsigned long wtimer; | |||
82 | void mips_timer_interrupt(void) | 82 | void mips_timer_interrupt(void) |
83 | { | 83 | { |
84 | int irq = 63; | 84 | int irq = 63; |
85 | unsigned long count; | ||
86 | 85 | ||
87 | irq_enter(); | 86 | irq_enter(); |
88 | kstat_this_cpu.irqs[irq]++; | 87 | kstat_this_cpu.irqs[irq]++; |
@@ -231,7 +230,6 @@ wakeup_counter0_set(int ticks) | |||
231 | */ | 230 | */ |
232 | unsigned long cal_r4koff(void) | 231 | unsigned long cal_r4koff(void) |
233 | { | 232 | { |
234 | unsigned long count; | ||
235 | unsigned long cpu_speed; | 233 | unsigned long cpu_speed; |
236 | unsigned long flags; | 234 | unsigned long flags; |
237 | unsigned long counter; | 235 | unsigned long counter; |
@@ -258,7 +256,7 @@ unsigned long cal_r4koff(void) | |||
258 | 256 | ||
259 | #if defined(CONFIG_AU1000_USE32K) | 257 | #if defined(CONFIG_AU1000_USE32K) |
260 | { | 258 | { |
261 | unsigned long start, end; | 259 | unsigned long start, end, count; |
262 | 260 | ||
263 | start = au_readl(SYS_RTCREAD); | 261 | start = au_readl(SYS_RTCREAD); |
264 | start += 2; | 262 | start += 2; |
@@ -282,7 +280,6 @@ unsigned long cal_r4koff(void) | |||
282 | #else | 280 | #else |
283 | cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * | 281 | cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * |
284 | AU1000_SRC_CLK; | 282 | AU1000_SRC_CLK; |
285 | count = cpu_speed / 2; | ||
286 | #endif | 283 | #endif |
287 | } | 284 | } |
288 | else { | 285 | else { |
@@ -291,10 +288,9 @@ unsigned long cal_r4koff(void) | |||
291 | * NOTE: some old silicon doesn't allow reading the PLL. | 288 | * NOTE: some old silicon doesn't allow reading the PLL. |
292 | */ | 289 | */ |
293 | cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK; | 290 | cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK; |
294 | count = cpu_speed / 2; | ||
295 | no_au1xxx_32khz = 1; | 291 | no_au1xxx_32khz = 1; |
296 | } | 292 | } |
297 | mips_hpt_frequency = count; | 293 | mips_hpt_frequency = cpu_speed; |
298 | // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) | 294 | // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) |
299 | set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16)); | 295 | set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16)); |
300 | spin_unlock_irqrestore(&time_lock, flags); | 296 | spin_unlock_irqrestore(&time_lock, flags); |
diff --git a/arch/mips/emma2rh/common/irq_emma2rh.c b/arch/mips/emma2rh/common/irq_emma2rh.c index 7c930860c921..197ed4c2ba04 100644 --- a/arch/mips/emma2rh/common/irq_emma2rh.c +++ b/arch/mips/emma2rh/common/irq_emma2rh.c | |||
@@ -97,7 +97,7 @@ void emma2rh_irq_init(u32 irq_base) | |||
97 | irq_desc[i].status = IRQ_DISABLED; | 97 | irq_desc[i].status = IRQ_DISABLED; |
98 | irq_desc[i].action = NULL; | 98 | irq_desc[i].action = NULL; |
99 | irq_desc[i].depth = 1; | 99 | irq_desc[i].depth = 1; |
100 | irq_desc[i].handler = &emma2rh_irq_controller; | 100 | irq_desc[i].chip = &emma2rh_irq_controller; |
101 | } | 101 | } |
102 | 102 | ||
103 | emma2rh_irq_base = irq_base; | 103 | emma2rh_irq_base = irq_base; |
diff --git a/arch/mips/emma2rh/markeins/irq_markeins.c b/arch/mips/emma2rh/markeins/irq_markeins.c index f23ae9fcffa0..0b36eb001e62 100644 --- a/arch/mips/emma2rh/markeins/irq_markeins.c +++ b/arch/mips/emma2rh/markeins/irq_markeins.c | |||
@@ -86,7 +86,7 @@ void emma2rh_sw_irq_init(u32 irq_base) | |||
86 | irq_desc[i].status = IRQ_DISABLED; | 86 | irq_desc[i].status = IRQ_DISABLED; |
87 | irq_desc[i].action = NULL; | 87 | irq_desc[i].action = NULL; |
88 | irq_desc[i].depth = 2; | 88 | irq_desc[i].depth = 2; |
89 | irq_desc[i].handler = &emma2rh_sw_irq_controller; | 89 | irq_desc[i].chip = &emma2rh_sw_irq_controller; |
90 | } | 90 | } |
91 | 91 | ||
92 | emma2rh_sw_irq_base = irq_base; | 92 | emma2rh_sw_irq_base = irq_base; |
@@ -166,7 +166,7 @@ void emma2rh_gpio_irq_init(u32 irq_base) | |||
166 | irq_desc[i].status = IRQ_DISABLED; | 166 | irq_desc[i].status = IRQ_DISABLED; |
167 | irq_desc[i].action = NULL; | 167 | irq_desc[i].action = NULL; |
168 | irq_desc[i].depth = 2; | 168 | irq_desc[i].depth = 2; |
169 | irq_desc[i].handler = &emma2rh_gpio_irq_controller; | 169 | irq_desc[i].chip = &emma2rh_gpio_irq_controller; |
170 | } | 170 | } |
171 | 171 | ||
172 | emma2rh_gpio_irq_base = irq_base; | 172 | emma2rh_gpio_irq_base = irq_base; |
diff --git a/arch/mips/emma2rh/markeins/platform.c b/arch/mips/emma2rh/markeins/platform.c index 15cc61df3622..11567702b155 100644 --- a/arch/mips/emma2rh/markeins/platform.c +++ b/arch/mips/emma2rh/markeins/platform.c | |||
@@ -44,18 +44,45 @@ | |||
44 | #define I2C_EMMA2RH "emma2rh-iic" /* must be in sync with IIC driver */ | 44 | #define I2C_EMMA2RH "emma2rh-iic" /* must be in sync with IIC driver */ |
45 | 45 | ||
46 | static struct resource i2c_emma_resources_0[] = { | 46 | static struct resource i2c_emma_resources_0[] = { |
47 | { NULL, EMMA2RH_IRQ_PIIC0, EMMA2RH_IRQ_PIIC0, IORESOURCE_IRQ }, | 47 | { |
48 | { NULL, KSEG1ADDR(EMMA2RH_PIIC0_BASE), KSEG1ADDR(EMMA2RH_PIIC0_BASE + 0x1000), 0 }, | 48 | .name = NULL, |
49 | .start = EMMA2RH_IRQ_PIIC0, | ||
50 | .end = EMMA2RH_IRQ_PIIC0, | ||
51 | .flags = IORESOURCE_IRQ | ||
52 | }, { | ||
53 | .name = NULL, | ||
54 | .start = EMMA2RH_PIIC0_BASE, | ||
55 | .end = EMMA2RH_PIIC0_BASE + 0x1000, | ||
56 | .flags = 0 | ||
57 | }, | ||
49 | }; | 58 | }; |
50 | 59 | ||
51 | struct resource i2c_emma_resources_1[] = { | 60 | struct resource i2c_emma_resources_1[] = { |
52 | { NULL, EMMA2RH_IRQ_PIIC1, EMMA2RH_IRQ_PIIC1, IORESOURCE_IRQ }, | 61 | { |
53 | { NULL, KSEG1ADDR(EMMA2RH_PIIC1_BASE), KSEG1ADDR(EMMA2RH_PIIC1_BASE + 0x1000), 0 }, | 62 | .name = NULL, |
63 | .start = EMMA2RH_IRQ_PIIC1, | ||
64 | .end = EMMA2RH_IRQ_PIIC1, | ||
65 | .flags = IORESOURCE_IRQ | ||
66 | }, { | ||
67 | .name = NULL, | ||
68 | .start = EMMA2RH_PIIC1_BASE, | ||
69 | .end = EMMA2RH_PIIC1_BASE + 0x1000, | ||
70 | .flags = 0 | ||
71 | }, | ||
54 | }; | 72 | }; |
55 | 73 | ||
56 | struct resource i2c_emma_resources_2[] = { | 74 | struct resource i2c_emma_resources_2[] = { |
57 | { NULL, EMMA2RH_IRQ_PIIC2, EMMA2RH_IRQ_PIIC2, IORESOURCE_IRQ }, | 75 | { |
58 | { NULL, KSEG1ADDR(EMMA2RH_PIIC2_BASE), KSEG1ADDR(EMMA2RH_PIIC2_BASE + 0x1000), 0 }, | 76 | .name = NULL, |
77 | .start = EMMA2RH_IRQ_PIIC2, | ||
78 | .end = EMMA2RH_IRQ_PIIC2, | ||
79 | .flags = IORESOURCE_IRQ | ||
80 | }, { | ||
81 | .name = NULL, | ||
82 | .start = EMMA2RH_PIIC2_BASE, | ||
83 | .end = EMMA2RH_PIIC2_BASE + 0x1000, | ||
84 | .flags = 0 | ||
85 | }, | ||
59 | }; | 86 | }; |
60 | 87 | ||
61 | struct platform_device i2c_emma_devices[] = { | 88 | struct platform_device i2c_emma_devices[] = { |
@@ -83,32 +110,29 @@ struct platform_device i2c_emma_devices[] = { | |||
83 | #define EMMA2RH_SERIAL_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | 110 | #define EMMA2RH_SERIAL_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
84 | 111 | ||
85 | static struct plat_serial8250_port platform_serial_ports[] = { | 112 | static struct plat_serial8250_port platform_serial_ports[] = { |
86 | [0] = { | 113 | [0] = { |
87 | .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR0_BASE + 3), | 114 | .membase= (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR0_BASE + 3), |
88 | .irq = EMMA2RH_IRQ_PFUR0, | 115 | .irq = EMMA2RH_IRQ_PFUR0, |
89 | .uartclk = EMMA2RH_SERIAL_CLOCK, | 116 | .uartclk = EMMA2RH_SERIAL_CLOCK, |
90 | .regshift = 4, | 117 | .regshift = 4, |
91 | .iotype = UPIO_MEM, | 118 | .iotype = UPIO_MEM, |
92 | .flags = EMMA2RH_SERIAL_FLAGS, | 119 | .flags = EMMA2RH_SERIAL_FLAGS, |
93 | }, | 120 | }, [1] = { |
94 | [1] = { | 121 | .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR1_BASE + 3), |
95 | .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR1_BASE + 3), | 122 | .irq = EMMA2RH_IRQ_PFUR1, |
96 | .irq = EMMA2RH_IRQ_PFUR1, | 123 | .uartclk = EMMA2RH_SERIAL_CLOCK, |
97 | .uartclk = EMMA2RH_SERIAL_CLOCK, | 124 | .regshift = 4, |
98 | .regshift = 4, | 125 | .iotype = UPIO_MEM, |
99 | .iotype = UPIO_MEM, | 126 | .flags = EMMA2RH_SERIAL_FLAGS, |
100 | .flags = EMMA2RH_SERIAL_FLAGS, | 127 | }, [2] = { |
101 | }, | 128 | .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR2_BASE + 3), |
102 | [2] = { | 129 | .irq = EMMA2RH_IRQ_PFUR2, |
103 | .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR2_BASE + 3), | 130 | .uartclk = EMMA2RH_SERIAL_CLOCK, |
104 | .irq = EMMA2RH_IRQ_PFUR2, | 131 | .regshift = 4, |
105 | .uartclk = EMMA2RH_SERIAL_CLOCK, | 132 | .iotype = UPIO_MEM, |
106 | .regshift = 4, | 133 | .flags = EMMA2RH_SERIAL_FLAGS, |
107 | .iotype = UPIO_MEM, | 134 | }, [3] = { |
108 | .flags = EMMA2RH_SERIAL_FLAGS, | 135 | .flags = 0, |
109 | }, | ||
110 | [3] = { | ||
111 | .flags = 0, | ||
112 | }, | 136 | }, |
113 | }; | 137 | }; |
114 | 138 | ||
diff --git a/arch/mips/jmr3927/rbhma3100/irq.c b/arch/mips/jmr3927/rbhma3100/irq.c index 39a0243bed9a..de4a238c28be 100644 --- a/arch/mips/jmr3927/rbhma3100/irq.c +++ b/arch/mips/jmr3927/rbhma3100/irq.c | |||
@@ -288,6 +288,8 @@ static void tx_branch_likely_bug_fixup(void) | |||
288 | 288 | ||
289 | static void jmr3927_spurious(void) | 289 | static void jmr3927_spurious(void) |
290 | { | 290 | { |
291 | struct pt_regs * regs = get_irq_regs(); | ||
292 | |||
291 | #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND | 293 | #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND |
292 | tx_branch_likely_bug_fixup(); | 294 | tx_branch_likely_bug_fixup(); |
293 | #endif | 295 | #endif |
@@ -297,6 +299,7 @@ static void jmr3927_spurious(void) | |||
297 | 299 | ||
298 | asmlinkage void plat_irq_dispatch(void) | 300 | asmlinkage void plat_irq_dispatch(void) |
299 | { | 301 | { |
302 | struct pt_regs * regs = get_irq_regs(); | ||
300 | int irq; | 303 | int irq; |
301 | 304 | ||
302 | #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND | 305 | #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND |
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index 720fac3435d5..a95f37de080e 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
@@ -654,6 +654,8 @@ einval: li v0, -EINVAL | |||
654 | sys sys_set_robust_list 2 | 654 | sys sys_set_robust_list 2 |
655 | sys sys_get_robust_list 3 /* 4310 */ | 655 | sys sys_get_robust_list 3 /* 4310 */ |
656 | sys sys_ni_syscall 0 | 656 | sys sys_ni_syscall 0 |
657 | sys sys_getcpu 3 | ||
658 | sys sys_epoll_pwait 6 | ||
657 | .endm | 659 | .endm |
658 | 660 | ||
659 | /* We pre-compute the number of _instruction_ bytes needed to | 661 | /* We pre-compute the number of _instruction_ bytes needed to |
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S index 3a34f62c8b1b..8fb0f60f657b 100644 --- a/arch/mips/kernel/scall64-64.S +++ b/arch/mips/kernel/scall64-64.S | |||
@@ -469,3 +469,5 @@ sys_call_table: | |||
469 | PTR sys_set_robust_list | 469 | PTR sys_set_robust_list |
470 | PTR sys_get_robust_list | 470 | PTR sys_get_robust_list |
471 | PTR sys_ni_syscall /* 5270 */ | 471 | PTR sys_ni_syscall /* 5270 */ |
472 | PTR sys_getcpu | ||
473 | PTR sys_epoll_pwait | ||
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index 67b92a1d6c72..0da5ca2040ff 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S | |||
@@ -395,3 +395,5 @@ EXPORT(sysn32_call_table) | |||
395 | PTR compat_sys_set_robust_list | 395 | PTR compat_sys_set_robust_list |
396 | PTR compat_sys_get_robust_list | 396 | PTR compat_sys_get_robust_list |
397 | PTR sys_ni_syscall | 397 | PTR sys_ni_syscall |
398 | PTR sys_getcpu | ||
399 | PTR sys_epoll_pwait | ||
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index 2875c4a3fa58..b9d00cae8b5f 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S | |||
@@ -517,4 +517,6 @@ sys_call_table: | |||
517 | PTR compat_sys_set_robust_list | 517 | PTR compat_sys_set_robust_list |
518 | PTR compat_sys_get_robust_list /* 4310 */ | 518 | PTR compat_sys_get_robust_list /* 4310 */ |
519 | PTR sys_ni_syscall | 519 | PTR sys_ni_syscall |
520 | PTR sys_getcpu | ||
521 | PTR sys_epoll_pwait | ||
520 | .size sys_call_table,.-sys_call_table | 522 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/mm/c-sb1.c b/arch/mips/mm/c-sb1.c index 5537558f19f7..ea49a775bf28 100644 --- a/arch/mips/mm/c-sb1.c +++ b/arch/mips/mm/c-sb1.c | |||
@@ -49,6 +49,15 @@ static unsigned short dcache_sets; | |||
49 | static unsigned int icache_range_cutoff; | 49 | static unsigned int icache_range_cutoff; |
50 | static unsigned int dcache_range_cutoff; | 50 | static unsigned int dcache_range_cutoff; |
51 | 51 | ||
52 | static inline void sb1_on_each_cpu(void (*func) (void *info), void *info, | ||
53 | int retry, int wait) | ||
54 | { | ||
55 | preempt_disable(); | ||
56 | smp_call_function(func, info, retry, wait); | ||
57 | func(info); | ||
58 | preempt_enable(); | ||
59 | } | ||
60 | |||
52 | /* | 61 | /* |
53 | * The dcache is fully coherent to the system, with one | 62 | * The dcache is fully coherent to the system, with one |
54 | * big caveat: the instruction stream. In other words, | 63 | * big caveat: the instruction stream. In other words, |
@@ -226,7 +235,7 @@ static void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr, | |||
226 | args.vma = vma; | 235 | args.vma = vma; |
227 | args.addr = addr; | 236 | args.addr = addr; |
228 | args.pfn = pfn; | 237 | args.pfn = pfn; |
229 | on_each_cpu(sb1_flush_cache_page_ipi, (void *) &args, 1, 1); | 238 | sb1_on_each_cpu(sb1_flush_cache_page_ipi, (void *) &args, 1, 1); |
230 | } | 239 | } |
231 | #else | 240 | #else |
232 | void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn) | 241 | void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn) |
@@ -249,7 +258,7 @@ void sb1___flush_cache_all_ipi(void *ignored) | |||
249 | 258 | ||
250 | static void sb1___flush_cache_all(void) | 259 | static void sb1___flush_cache_all(void) |
251 | { | 260 | { |
252 | on_each_cpu(sb1___flush_cache_all_ipi, 0, 1, 1); | 261 | sb1_on_each_cpu(sb1___flush_cache_all_ipi, 0, 1, 1); |
253 | } | 262 | } |
254 | #else | 263 | #else |
255 | void sb1___flush_cache_all(void) | 264 | void sb1___flush_cache_all(void) |
@@ -299,7 +308,7 @@ void sb1_flush_icache_range(unsigned long start, unsigned long end) | |||
299 | 308 | ||
300 | args.start = start; | 309 | args.start = start; |
301 | args.end = end; | 310 | args.end = end; |
302 | on_each_cpu(sb1_flush_icache_range_ipi, &args, 1, 1); | 311 | sb1_on_each_cpu(sb1_flush_icache_range_ipi, &args, 1, 1); |
303 | } | 312 | } |
304 | #else | 313 | #else |
305 | void sb1_flush_icache_range(unsigned long start, unsigned long end) | 314 | void sb1_flush_icache_range(unsigned long start, unsigned long end) |
@@ -326,7 +335,7 @@ static void sb1_flush_cache_sigtramp_ipi(void *info) | |||
326 | 335 | ||
327 | static void sb1_flush_cache_sigtramp(unsigned long addr) | 336 | static void sb1_flush_cache_sigtramp(unsigned long addr) |
328 | { | 337 | { |
329 | on_each_cpu(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1); | 338 | sb1_on_each_cpu(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1); |
330 | } | 339 | } |
331 | #else | 340 | #else |
332 | void sb1_flush_cache_sigtramp(unsigned long addr) | 341 | void sb1_flush_cache_sigtramp(unsigned long addr) |
@@ -444,7 +453,6 @@ static __init void probe_cache_sizes(void) | |||
444 | void sb1_cache_init(void) | 453 | void sb1_cache_init(void) |
445 | { | 454 | { |
446 | extern char except_vec2_sb1; | 455 | extern char except_vec2_sb1; |
447 | extern char handle_vec2_sb1; | ||
448 | 456 | ||
449 | /* Special cache error handler for SB1 */ | 457 | /* Special cache error handler for SB1 */ |
450 | set_uncached_handler (0x100, &except_vec2_sb1, 0x80); | 458 | set_uncached_handler (0x100, &except_vec2_sb1, 0x80); |
diff --git a/arch/mips/momentum/ocelot_g/ocelot_pld.h b/arch/mips/momentum/ocelot_g/ocelot_pld.h index fcb8275e219d..95e0534026d0 100644 --- a/arch/mips/momentum/ocelot_g/ocelot_pld.h +++ b/arch/mips/momentum/ocelot_g/ocelot_pld.h | |||
@@ -23,8 +23,8 @@ | |||
23 | #define OCELOT_REG_INTSET (12) | 23 | #define OCELOT_REG_INTSET (12) |
24 | #define OCELOT_REG_INTCLR (13) | 24 | #define OCELOT_REG_INTCLR (13) |
25 | 25 | ||
26 | #define OCELOT_PLD_WRITE(x, y) writeb(x, OCELOT_CS0_ADDR + OCELOT_REG_##y) | 26 | #define __PLD_REG_TO_ADDR(reg) ((void *) OCELOT_CS0_ADDR + OCELOT_REG_##reg) |
27 | #define OCELOT_PLD_READ(x) readb(OCELOT_CS0_ADDR + OCELOT_REG_##x) | 27 | #define OCELOT_PLD_WRITE(x, reg) writeb(x, __PLD_REG_TO_ADDR(reg)) |
28 | 28 | #define OCELOT_PLD_READ(reg) readb(__PLD_REG_TO_ADDR(reg)) | |
29 | 29 | ||
30 | #endif /* __MOMENCO_OCELOT_PLD_H__ */ | 30 | #endif /* __MOMENCO_OCELOT_PLD_H__ */ |
diff --git a/arch/mips/momentum/ocelot_g/setup.c b/arch/mips/momentum/ocelot_g/setup.c index 56ec47039c16..d288f7b01842 100644 --- a/arch/mips/momentum/ocelot_g/setup.c +++ b/arch/mips/momentum/ocelot_g/setup.c | |||
@@ -57,6 +57,7 @@ | |||
57 | #include <asm/gt64240.h> | 57 | #include <asm/gt64240.h> |
58 | #include <asm/irq.h> | 58 | #include <asm/irq.h> |
59 | #include <asm/pci.h> | 59 | #include <asm/pci.h> |
60 | #include <asm/pgtable.h> | ||
60 | #include <asm/processor.h> | 61 | #include <asm/processor.h> |
61 | #include <asm/reboot.h> | 62 | #include <asm/reboot.h> |
62 | #include <linux/bootmem.h> | 63 | #include <linux/bootmem.h> |
@@ -160,6 +161,10 @@ static void __init setup_l3cache(unsigned long size) | |||
160 | printk("Done\n"); | 161 | printk("Done\n"); |
161 | } | 162 | } |
162 | 163 | ||
164 | void __init plat_timer_setup(struct irqaction *irq) | ||
165 | { | ||
166 | } | ||
167 | |||
163 | void __init plat_mem_setup(void) | 168 | void __init plat_mem_setup(void) |
164 | { | 169 | { |
165 | void (*l3func)(unsigned long) = (void *) KSEG1ADDR(setup_l3cache); | 170 | void (*l3func)(unsigned long) = (void *) KSEG1ADDR(setup_l3cache); |
diff --git a/arch/mips/oprofile/op_model_mipsxx.c b/arch/mips/oprofile/op_model_mipsxx.c index dd0aec9c3ce1..1fb240c57bac 100644 --- a/arch/mips/oprofile/op_model_mipsxx.c +++ b/arch/mips/oprofile/op_model_mipsxx.c | |||
@@ -31,16 +31,18 @@ | |||
31 | #define M_COUNTER_OVERFLOW (1UL << 31) | 31 | #define M_COUNTER_OVERFLOW (1UL << 31) |
32 | 32 | ||
33 | #ifdef CONFIG_MIPS_MT_SMP | 33 | #ifdef CONFIG_MIPS_MT_SMP |
34 | #define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id())) | 34 | #define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id())) |
35 | #define vpe_id() smp_processor_id() | ||
35 | #else | 36 | #else |
36 | #define WHAT 0 | 37 | #define WHAT 0 |
38 | #define vpe_id() smp_processor_id() | ||
37 | #endif | 39 | #endif |
38 | 40 | ||
39 | #define __define_perf_accessors(r, n, np) \ | 41 | #define __define_perf_accessors(r, n, np) \ |
40 | \ | 42 | \ |
41 | static inline unsigned int r_c0_ ## r ## n(void) \ | 43 | static inline unsigned int r_c0_ ## r ## n(void) \ |
42 | { \ | 44 | { \ |
43 | unsigned int cpu = smp_processor_id(); \ | 45 | unsigned int cpu = vpe_id(); \ |
44 | \ | 46 | \ |
45 | switch (cpu) { \ | 47 | switch (cpu) { \ |
46 | case 0: \ | 48 | case 0: \ |
@@ -55,7 +57,7 @@ static inline unsigned int r_c0_ ## r ## n(void) \ | |||
55 | \ | 57 | \ |
56 | static inline void w_c0_ ## r ## n(unsigned int value) \ | 58 | static inline void w_c0_ ## r ## n(unsigned int value) \ |
57 | { \ | 59 | { \ |
58 | unsigned int cpu = smp_processor_id(); \ | 60 | unsigned int cpu = vpe_id(); \ |
59 | \ | 61 | \ |
60 | switch (cpu) { \ | 62 | switch (cpu) { \ |
61 | case 0: \ | 63 | case 0: \ |
@@ -218,7 +220,7 @@ static inline int n_counters(void) | |||
218 | { | 220 | { |
219 | int counters = __n_counters(); | 221 | int counters = __n_counters(); |
220 | 222 | ||
221 | #ifndef CONFIG_SMP | 223 | #ifdef CONFIG_MIPS_MT_SMP |
222 | if (current_cpu_data.cputype == CPU_34K) | 224 | if (current_cpu_data.cputype == CPU_34K) |
223 | return counters >> 1; | 225 | return counters >> 1; |
224 | #endif | 226 | #endif |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c b/arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c index b926e6a75c29..08b20cdfd7b3 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c | |||
@@ -36,14 +36,18 @@ void __init txx9_spi_init(unsigned long base, int (*cs_func)(int chipid, int on) | |||
36 | 36 | ||
37 | static DECLARE_WAIT_QUEUE_HEAD(txx9_spi_wait); | 37 | static DECLARE_WAIT_QUEUE_HEAD(txx9_spi_wait); |
38 | 38 | ||
39 | static void txx9_spi_interrupt(int irq, void *dev_id) | 39 | static irqreturn_t txx9_spi_interrupt(int irq, void *dev_id) |
40 | { | 40 | { |
41 | /* disable rx intr */ | 41 | /* disable rx intr */ |
42 | tx4938_spiptr->cr0 &= ~TXx9_SPCR0_RBSIE; | 42 | tx4938_spiptr->cr0 &= ~TXx9_SPCR0_RBSIE; |
43 | wake_up(&txx9_spi_wait); | 43 | wake_up(&txx9_spi_wait); |
44 | |||
45 | return IRQ_HANDLED; | ||
44 | } | 46 | } |
47 | |||
45 | static struct irqaction txx9_spi_action = { | 48 | static struct irqaction txx9_spi_action = { |
46 | txx9_spi_interrupt, 0, 0, "spi", NULL, NULL, | 49 | .handler = txx9_spi_interrupt, |
50 | .name = "spi", | ||
47 | }; | 51 | }; |
48 | 52 | ||
49 | void __init txx9_spi_irqinit(int irc_irq) | 53 | void __init txx9_spi_irqinit(int irc_irq) |
diff --git a/include/asm-mips/unistd.h b/include/asm-mips/unistd.h index 30240a445dbb..ec56aa52f669 100644 --- a/include/asm-mips/unistd.h +++ b/include/asm-mips/unistd.h | |||
@@ -332,16 +332,18 @@ | |||
332 | #define __NR_set_robust_list (__NR_Linux + 309) | 332 | #define __NR_set_robust_list (__NR_Linux + 309) |
333 | #define __NR_get_robust_list (__NR_Linux + 310) | 333 | #define __NR_get_robust_list (__NR_Linux + 310) |
334 | #define __NR_kexec_load (__NR_Linux + 311) | 334 | #define __NR_kexec_load (__NR_Linux + 311) |
335 | #define __NR_getcpu (__NR_Linux + 312) | ||
336 | #define __NR_epoll_pwait (__NR_Linux + 313) | ||
335 | 337 | ||
336 | /* | 338 | /* |
337 | * Offset of the last Linux o32 flavoured syscall | 339 | * Offset of the last Linux o32 flavoured syscall |
338 | */ | 340 | */ |
339 | #define __NR_Linux_syscalls 311 | 341 | #define __NR_Linux_syscalls 313 |
340 | 342 | ||
341 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ | 343 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ |
342 | 344 | ||
343 | #define __NR_O32_Linux 4000 | 345 | #define __NR_O32_Linux 4000 |
344 | #define __NR_O32_Linux_syscalls 311 | 346 | #define __NR_O32_Linux_syscalls 313 |
345 | 347 | ||
346 | #if _MIPS_SIM == _MIPS_SIM_ABI64 | 348 | #if _MIPS_SIM == _MIPS_SIM_ABI64 |
347 | 349 | ||
@@ -620,16 +622,18 @@ | |||
620 | #define __NR_set_robust_list (__NR_Linux + 268) | 622 | #define __NR_set_robust_list (__NR_Linux + 268) |
621 | #define __NR_get_robust_list (__NR_Linux + 269) | 623 | #define __NR_get_robust_list (__NR_Linux + 269) |
622 | #define __NR_kexec_load (__NR_Linux + 270) | 624 | #define __NR_kexec_load (__NR_Linux + 270) |
625 | #define __NR_getcpu (__NR_Linux + 271) | ||
626 | #define __NR_epoll_pwait (__NR_Linux + 272) | ||
623 | 627 | ||
624 | /* | 628 | /* |
625 | * Offset of the last Linux 64-bit flavoured syscall | 629 | * Offset of the last Linux 64-bit flavoured syscall |
626 | */ | 630 | */ |
627 | #define __NR_Linux_syscalls 270 | 631 | #define __NR_Linux_syscalls 272 |
628 | 632 | ||
629 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ | 633 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ |
630 | 634 | ||
631 | #define __NR_64_Linux 5000 | 635 | #define __NR_64_Linux 5000 |
632 | #define __NR_64_Linux_syscalls 270 | 636 | #define __NR_64_Linux_syscalls 272 |
633 | 637 | ||
634 | #if _MIPS_SIM == _MIPS_SIM_NABI32 | 638 | #if _MIPS_SIM == _MIPS_SIM_NABI32 |
635 | 639 | ||
@@ -912,16 +916,18 @@ | |||
912 | #define __NR_set_robust_list (__NR_Linux + 272) | 916 | #define __NR_set_robust_list (__NR_Linux + 272) |
913 | #define __NR_get_robust_list (__NR_Linux + 273) | 917 | #define __NR_get_robust_list (__NR_Linux + 273) |
914 | #define __NR_kexec_load (__NR_Linux + 274) | 918 | #define __NR_kexec_load (__NR_Linux + 274) |
919 | #define __NR_getcpu (__NR_Linux + 275) | ||
920 | #define __NR_epoll_pwait (__NR_Linux + 276) | ||
915 | 921 | ||
916 | /* | 922 | /* |
917 | * Offset of the last N32 flavoured syscall | 923 | * Offset of the last N32 flavoured syscall |
918 | */ | 924 | */ |
919 | #define __NR_Linux_syscalls 274 | 925 | #define __NR_Linux_syscalls 276 |
920 | 926 | ||
921 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ | 927 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ |
922 | 928 | ||
923 | #define __NR_N32_Linux 6000 | 929 | #define __NR_N32_Linux 6000 |
924 | #define __NR_N32_Linux_syscalls 274 | 930 | #define __NR_N32_Linux_syscalls 276 |
925 | 931 | ||
926 | #ifdef __KERNEL__ | 932 | #ifdef __KERNEL__ |
927 | 933 | ||
@@ -1189,6 +1195,7 @@ type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \ | |||
1189 | #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */ | 1195 | #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */ |
1190 | 1196 | ||
1191 | 1197 | ||
1198 | #define __ARCH_OMIT_COMPAT_SYS_GETDENTS64 | ||
1192 | #define __ARCH_WANT_IPC_PARSE_VERSION | 1199 | #define __ARCH_WANT_IPC_PARSE_VERSION |
1193 | #define __ARCH_WANT_OLD_READDIR | 1200 | #define __ARCH_WANT_OLD_READDIR |
1194 | #define __ARCH_WANT_SYS_ALARM | 1201 | #define __ARCH_WANT_SYS_ALARM |