diff options
Diffstat (limited to 'arch/mips')
66 files changed, 121 insertions, 191 deletions
diff --git a/arch/mips/alchemy/mtx-1/platform.c b/arch/mips/alchemy/mtx-1/platform.c index 8b5914d1241f..e30e42add697 100644 --- a/arch/mips/alchemy/mtx-1/platform.c +++ b/arch/mips/alchemy/mtx-1/platform.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * MTX-1 platform devices registration | 2 | * MTX-1 platform devices registration |
3 | * | 3 | * |
4 | * Copyright (C) 2007, Florian Fainelli <florian@openwrt.org> | 4 | * Copyright (C) 2007-2009, Florian Fainelli <florian@openwrt.org> |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License as published by | 7 | * it under the terms of the GNU General Public License as published by |
@@ -142,7 +142,17 @@ static struct __initdata platform_device * mtx1_devs[] = { | |||
142 | 142 | ||
143 | static int __init mtx1_register_devices(void) | 143 | static int __init mtx1_register_devices(void) |
144 | { | 144 | { |
145 | gpio_direction_input(207); | 145 | int rc; |
146 | |||
147 | rc = gpio_request(mtx1_gpio_button[0].gpio, | ||
148 | mtx1_gpio_button[0].desc); | ||
149 | if (rc < 0) { | ||
150 | printk(KERN_INFO "mtx1: failed to request %d\n", | ||
151 | mtx1_gpio_button[0].gpio); | ||
152 | goto out; | ||
153 | } | ||
154 | gpio_direction_input(mtx1_gpio_button[0].gpio); | ||
155 | out: | ||
146 | return platform_add_devices(mtx1_devs, ARRAY_SIZE(mtx1_devs)); | 156 | return platform_add_devices(mtx1_devs, ARRAY_SIZE(mtx1_devs)); |
147 | } | 157 | } |
148 | 158 | ||
diff --git a/arch/mips/ar7/Makefile b/arch/mips/ar7/Makefile index 7435e44b3964..26bc5da18997 100644 --- a/arch/mips/ar7/Makefile +++ b/arch/mips/ar7/Makefile | |||
@@ -8,3 +8,4 @@ obj-y := \ | |||
8 | platform.o \ | 8 | platform.o \ |
9 | gpio.o \ | 9 | gpio.o \ |
10 | clock.o | 10 | clock.o |
11 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/mips/ar7/clock.c b/arch/mips/ar7/clock.c index 27dc6663f2fa..cc65c8eb391b 100644 --- a/arch/mips/ar7/clock.c +++ b/arch/mips/ar7/clock.c | |||
@@ -264,19 +264,6 @@ static void __init tnetd7300_init_clocks(void) | |||
264 | iounmap(bootcr); | 264 | iounmap(bootcr); |
265 | } | 265 | } |
266 | 266 | ||
267 | static int tnetd7200_get_clock(int base, struct tnetd7200_clock *clock, | ||
268 | u32 *bootcr, u32 bus_clock) | ||
269 | { | ||
270 | int divisor = ((readl(&clock->prediv) & 0x1f) + 1) * | ||
271 | ((readl(&clock->postdiv) & 0x1f) + 1); | ||
272 | |||
273 | if (*bootcr & BOOT_PLL_BYPASS) | ||
274 | return base / divisor; | ||
275 | |||
276 | return base * ((readl(&clock->mul) & 0xf) + 1) / divisor; | ||
277 | } | ||
278 | |||
279 | |||
280 | static void tnetd7200_set_clock(int base, struct tnetd7200_clock *clock, | 267 | static void tnetd7200_set_clock(int base, struct tnetd7200_clock *clock, |
281 | int prediv, int postdiv, int postdiv2, int mul, u32 frequency) | 268 | int prediv, int postdiv, int postdiv2, int mul, u32 frequency) |
282 | { | 269 | { |
diff --git a/arch/mips/ar7/memory.c b/arch/mips/ar7/memory.c index 46fed44825a6..696c723dc6d4 100644 --- a/arch/mips/ar7/memory.c +++ b/arch/mips/ar7/memory.c | |||
@@ -52,7 +52,7 @@ static int __init memsize(void) | |||
52 | size <<= 1; | 52 | size <<= 1; |
53 | } while (size < (64 << 20)); | 53 | } while (size < (64 << 20)); |
54 | 54 | ||
55 | writel(tmpaddr, &addr); | 55 | writel((u32)tmpaddr, &addr); |
56 | 56 | ||
57 | return size; | 57 | return size; |
58 | } | 58 | } |
diff --git a/arch/mips/ar7/platform.c b/arch/mips/ar7/platform.c index 542244961780..2ecab6155932 100644 --- a/arch/mips/ar7/platform.c +++ b/arch/mips/ar7/platform.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/serial_8250.h> | 28 | #include <linux/serial_8250.h> |
29 | #include <linux/ioport.h> | 29 | #include <linux/ioport.h> |
30 | #include <linux/io.h> | 30 | #include <linux/io.h> |
31 | #include <linux/version.h> | ||
32 | #include <linux/vlynq.h> | 31 | #include <linux/vlynq.h> |
33 | #include <linux/leds.h> | 32 | #include <linux/leds.h> |
34 | #include <linux/string.h> | 33 | #include <linux/string.h> |
@@ -243,13 +242,13 @@ static struct platform_device physmap_flash = { | |||
243 | .num_resources = 1, | 242 | .num_resources = 1, |
244 | }; | 243 | }; |
245 | 244 | ||
246 | static u64 cpmac_dma_mask = DMA_32BIT_MASK; | 245 | static u64 cpmac_dma_mask = DMA_BIT_MASK(32); |
247 | static struct platform_device cpmac_low = { | 246 | static struct platform_device cpmac_low = { |
248 | .id = 0, | 247 | .id = 0, |
249 | .name = "cpmac", | 248 | .name = "cpmac", |
250 | .dev = { | 249 | .dev = { |
251 | .dma_mask = &cpmac_dma_mask, | 250 | .dma_mask = &cpmac_dma_mask, |
252 | .coherent_dma_mask = DMA_32BIT_MASK, | 251 | .coherent_dma_mask = DMA_BIT_MASK(32), |
253 | .platform_data = &cpmac_low_data, | 252 | .platform_data = &cpmac_low_data, |
254 | }, | 253 | }, |
255 | .resource = cpmac_low_res, | 254 | .resource = cpmac_low_res, |
@@ -261,7 +260,7 @@ static struct platform_device cpmac_high = { | |||
261 | .name = "cpmac", | 260 | .name = "cpmac", |
262 | .dev = { | 261 | .dev = { |
263 | .dma_mask = &cpmac_dma_mask, | 262 | .dma_mask = &cpmac_dma_mask, |
264 | .coherent_dma_mask = DMA_32BIT_MASK, | 263 | .coherent_dma_mask = DMA_BIT_MASK(32), |
265 | .platform_data = &cpmac_high_data, | 264 | .platform_data = &cpmac_high_data, |
266 | }, | 265 | }, |
267 | .resource = cpmac_high_res, | 266 | .resource = cpmac_high_res, |
@@ -481,6 +480,7 @@ static void __init detect_leds(void) | |||
481 | static int __init ar7_register_devices(void) | 480 | static int __init ar7_register_devices(void) |
482 | { | 481 | { |
483 | int res; | 482 | int res; |
483 | #ifdef CONFIG_SERIAL_8250 | ||
484 | static struct uart_port uart_port[2]; | 484 | static struct uart_port uart_port[2]; |
485 | 485 | ||
486 | memset(uart_port, 0, sizeof(struct uart_port) * 2); | 486 | memset(uart_port, 0, sizeof(struct uart_port) * 2); |
@@ -512,7 +512,7 @@ static int __init ar7_register_devices(void) | |||
512 | if (res) | 512 | if (res) |
513 | return res; | 513 | return res; |
514 | } | 514 | } |
515 | 515 | #endif /* CONFIG_SERIAL_8250 */ | |
516 | res = platform_device_register(&physmap_flash); | 516 | res = platform_device_register(&physmap_flash); |
517 | if (res) | 517 | if (res) |
518 | return res; | 518 | return res; |
diff --git a/arch/mips/ar7/prom.c b/arch/mips/ar7/prom.c index a320bceb2f9d..5ad6f1db6567 100644 --- a/arch/mips/ar7/prom.c +++ b/arch/mips/ar7/prom.c | |||
@@ -144,7 +144,7 @@ static char * __init lookup_psp_var_map(u8 num) | |||
144 | { | 144 | { |
145 | int i; | 145 | int i; |
146 | 146 | ||
147 | for (i = 0; i < sizeof(psp_var_map); i++) | 147 | for (i = 0; i < ARRAY_SIZE(psp_var_map); i++) |
148 | if (psp_var_map[i].num == num) | 148 | if (psp_var_map[i].num == num) |
149 | return psp_var_map[i].value; | 149 | return psp_var_map[i].value; |
150 | 150 | ||
diff --git a/arch/mips/ar7/setup.c b/arch/mips/ar7/setup.c index 6ebb5f16d967..39f6b5b96463 100644 --- a/arch/mips/ar7/setup.c +++ b/arch/mips/ar7/setup.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | 15 | * with this program; if not, write to the Free Software Foundation, Inc., |
16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | 16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | #include <linux/version.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/ioport.h> | 19 | #include <linux/ioport.h> |
21 | #include <linux/pm.h> | 20 | #include <linux/pm.h> |
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c index 0b891a9c6253..32d51a31dc48 100644 --- a/arch/mips/cavium-octeon/smp.c +++ b/arch/mips/cavium-octeon/smp.c | |||
@@ -194,11 +194,11 @@ static void octeon_init_secondary(void) | |||
194 | void octeon_prepare_cpus(unsigned int max_cpus) | 194 | void octeon_prepare_cpus(unsigned int max_cpus) |
195 | { | 195 | { |
196 | cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffffffff); | 196 | cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffffffff); |
197 | if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, IRQF_SHARED, | 197 | if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, IRQF_DISABLED, |
198 | "mailbox0", mailbox_interrupt)) { | 198 | "mailbox0", mailbox_interrupt)) { |
199 | panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n"); | 199 | panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n"); |
200 | } | 200 | } |
201 | if (request_irq(OCTEON_IRQ_MBOX1, mailbox_interrupt, IRQF_SHARED, | 201 | if (request_irq(OCTEON_IRQ_MBOX1, mailbox_interrupt, IRQF_DISABLED, |
202 | "mailbox1", mailbox_interrupt)) { | 202 | "mailbox1", mailbox_interrupt)) { |
203 | panic("Cannot request_irq(OCTEON_IRQ_MBOX1)\n"); | 203 | panic("Cannot request_irq(OCTEON_IRQ_MBOX1)\n"); |
204 | } | 204 | } |
diff --git a/arch/mips/dec/ecc-berr.c b/arch/mips/dec/ecc-berr.c index 6a17c9b508ea..7abce661b90f 100644 --- a/arch/mips/dec/ecc-berr.c +++ b/arch/mips/dec/ecc-berr.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/dec/ecc-berr.c | ||
3 | * | ||
4 | * Bus error event handling code for systems equipped with ECC | 2 | * Bus error event handling code for systems equipped with ECC |
5 | * handling logic, i.e. DECstation/DECsystem 5000/200 (KN02), | 3 | * handling logic, i.e. DECstation/DECsystem 5000/200 (KN02), |
6 | * 5000/240 (KN03), 5000/260 (KN05) and DECsystem 5900 (KN03), | 4 | * 5000/240 (KN03), 5000/260 (KN05) and DECsystem 5900 (KN03), |
diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S index 00cecdcc75f2..82c852818781 100644 --- a/arch/mips/dec/int-handler.S +++ b/arch/mips/dec/int-handler.S | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/dec/int-handler.S | ||
3 | * | ||
4 | * Copyright (C) 1995, 1996, 1997 Paul M. Antoine and Harald Koerfgen | 2 | * Copyright (C) 1995, 1996, 1997 Paul M. Antoine and Harald Koerfgen |
5 | * Copyright (C) 2000, 2001, 2002, 2003, 2005 Maciej W. Rozycki | 3 | * Copyright (C) 2000, 2001, 2002, 2003, 2005 Maciej W. Rozycki |
6 | * | 4 | * |
diff --git a/arch/mips/dec/ioasic-irq.c b/arch/mips/dec/ioasic-irq.c index 3acb133668dc..cb41954fc321 100644 --- a/arch/mips/dec/ioasic-irq.c +++ b/arch/mips/dec/ioasic-irq.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/dec/ioasic-irq.c | ||
3 | * | ||
4 | * DEC I/O ASIC interrupts. | 2 | * DEC I/O ASIC interrupts. |
5 | * | 3 | * |
6 | * Copyright (c) 2002, 2003 Maciej W. Rozycki | 4 | * Copyright (c) 2002, 2003 Maciej W. Rozycki |
diff --git a/arch/mips/dec/kn01-berr.c b/arch/mips/dec/kn01-berr.c index d3b8002bf1e7..b0dc6d53edd6 100644 --- a/arch/mips/dec/kn01-berr.c +++ b/arch/mips/dec/kn01-berr.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/dec/kn01-berr.c | ||
3 | * | ||
4 | * Bus error event handling code for DECstation/DECsystem 3100 | 2 | * Bus error event handling code for DECstation/DECsystem 3100 |
5 | * and 2100 (KN01) systems equipped with parity error detection | 3 | * and 2100 (KN01) systems equipped with parity error detection |
6 | * logic. | 4 | * logic. |
diff --git a/arch/mips/dec/kn02-irq.c b/arch/mips/dec/kn02-irq.c index 02439dc0ba83..ed90a8deabcc 100644 --- a/arch/mips/dec/kn02-irq.c +++ b/arch/mips/dec/kn02-irq.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/dec/kn02-irq.c | ||
3 | * | ||
4 | * DECstation 5000/200 (KN02) Control and Status Register | 2 | * DECstation 5000/200 (KN02) Control and Status Register |
5 | * interrupts. | 3 | * interrupts. |
6 | * | 4 | * |
diff --git a/arch/mips/dec/kn02xa-berr.c b/arch/mips/dec/kn02xa-berr.c index 5f04545c3606..07ca5405d48d 100644 --- a/arch/mips/dec/kn02xa-berr.c +++ b/arch/mips/dec/kn02xa-berr.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/dec/kn02xa-berr.c | ||
3 | * | ||
4 | * Bus error event handling code for 5000-series systems equipped | 2 | * Bus error event handling code for 5000-series systems equipped |
5 | * with parity error detection logic, i.e. DECstation/DECsystem | 3 | * with parity error detection logic, i.e. DECstation/DECsystem |
6 | * 5000/120, /125, /133 (KN02-BA), 5000/150 (KN04-BA) and Personal | 4 | * 5000/120, /125, /133 (KN02-BA), 5000/150 (KN04-BA) and Personal |
diff --git a/arch/mips/dec/prom/call_o32.S b/arch/mips/dec/prom/call_o32.S index e523454bda3a..8c8498159e43 100644 --- a/arch/mips/dec/prom/call_o32.S +++ b/arch/mips/dec/prom/call_o32.S | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/dec/prom/call_o32.S | ||
3 | * | ||
4 | * O32 interface for the 64 (or N32) ABI. | 2 | * O32 interface for the 64 (or N32) ABI. |
5 | * | 3 | * |
6 | * Copyright (C) 2002 Maciej W. Rozycki | 4 | * Copyright (C) 2002 Maciej W. Rozycki |
diff --git a/arch/mips/dec/prom/console.c b/arch/mips/dec/prom/console.c index 078e1a12421d..caa6e047caf1 100644 --- a/arch/mips/dec/prom/console.c +++ b/arch/mips/dec/prom/console.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/dec/prom/console.c | ||
3 | * | ||
4 | * DECstation PROM-based early console support. | 2 | * DECstation PROM-based early console support. |
5 | * | 3 | * |
6 | * Copyright (C) 2004, 2007 Maciej W. Rozycki | 4 | * Copyright (C) 2004, 2007 Maciej W. Rozycki |
diff --git a/arch/mips/dec/time.c b/arch/mips/dec/time.c index 1359c03ded51..463136e6685a 100644 --- a/arch/mips/dec/time.c +++ b/arch/mips/dec/time.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/dec/time.c | ||
3 | * | ||
4 | * Copyright (C) 1991, 1992, 1995 Linus Torvalds | 2 | * Copyright (C) 1991, 1992, 1995 Linus Torvalds |
5 | * Copyright (C) 2000, 2003 Maciej W. Rozycki | 3 | * Copyright (C) 2000, 2003 Maciej W. Rozycki |
6 | * | 4 | * |
diff --git a/arch/mips/emma/common/Makefile b/arch/mips/emma/common/Makefile index c392d28c1ef1..f27d84d1904f 100644 --- a/arch/mips/emma/common/Makefile +++ b/arch/mips/emma/common/Makefile | |||
@@ -1,7 +1,4 @@ | |||
1 | # | 1 | # |
2 | # arch/mips/emma2rh/common/Makefile | ||
3 | # Makefile for the common code of NEC EMMA2RH based board. | ||
4 | # | ||
5 | # Copyright (C) NEC Electronics Corporation 2005-2006 | 2 | # Copyright (C) NEC Electronics Corporation 2005-2006 |
6 | # | 3 | # |
7 | # This program is free software; you can redistribute it and/or modify | 4 | # This program is free software; you can redistribute it and/or modify |
diff --git a/arch/mips/emma/common/prom.c b/arch/mips/emma/common/prom.c index 120f53fbdb45..708f08761406 100644 --- a/arch/mips/emma/common/prom.c +++ b/arch/mips/emma/common/prom.c | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/emma2rh/common/prom.c | ||
3 | * This file is prom file. | ||
4 | * | ||
5 | * Copyright (C) NEC Electronics Corporation 2004-2006 | 2 | * Copyright (C) NEC Electronics Corporation 2004-2006 |
6 | * | 3 | * |
7 | * This file is based on the arch/mips/ddb5xxx/common/prom.c | 4 | * This file is based on the arch/mips/ddb5xxx/common/prom.c |
diff --git a/arch/mips/emma/markeins/Makefile b/arch/mips/emma/markeins/Makefile index 16e0017ba919..f8ba2508fa2b 100644 --- a/arch/mips/emma/markeins/Makefile +++ b/arch/mips/emma/markeins/Makefile | |||
@@ -1,7 +1,4 @@ | |||
1 | # | 1 | # |
2 | # arch/mips/emma2rh/markeins/Makefile | ||
3 | # Makefile for the common code of NEC EMMA2RH based board. | ||
4 | # | ||
5 | # Copyright (C) NEC Electronics Corporation 2005-2006 | 2 | # Copyright (C) NEC Electronics Corporation 2005-2006 |
6 | # | 3 | # |
7 | # This program is free software; you can redistribute it and/or modify | 4 | # This program is free software; you can redistribute it and/or modify |
diff --git a/arch/mips/emma/markeins/irq.c b/arch/mips/emma/markeins/irq.c index 43828ae796ec..9504b7ee0b7c 100644 --- a/arch/mips/emma/markeins/irq.c +++ b/arch/mips/emma/markeins/irq.c | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/emma2rh/markeins/irq.c | ||
3 | * This file defines the irq handler for EMMA2RH. | ||
4 | * | ||
5 | * Copyright (C) NEC Electronics Corporation 2004-2006 | 2 | * Copyright (C) NEC Electronics Corporation 2004-2006 |
6 | * | 3 | * |
7 | * This file is based on the arch/mips/ddb5xxx/ddb5477/irq.c | 4 | * This file is based on the arch/mips/ddb5xxx/ddb5477/irq.c |
diff --git a/arch/mips/emma/markeins/led.c b/arch/mips/emma/markeins/led.c index 377a181b6561..49755896857f 100644 --- a/arch/mips/emma/markeins/led.c +++ b/arch/mips/emma/markeins/led.c | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/emma2rh/markeins/led.c | ||
3 | * This file defines the led display for Mark-eins. | ||
4 | * | ||
5 | * Copyright (C) NEC Electronics Corporation 2004-2006 | 2 | * Copyright (C) NEC Electronics Corporation 2004-2006 |
6 | * | 3 | * |
7 | * This program is free software; you can redistribute it and/or modify | 4 | * This program is free software; you can redistribute it and/or modify |
diff --git a/arch/mips/emma/markeins/platform.c b/arch/mips/emma/markeins/platform.c index 80ae12ef87db..b05b08b92a34 100644 --- a/arch/mips/emma/markeins/platform.c +++ b/arch/mips/emma/markeins/platform.c | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/emma2rh/markeins/platofrm.c | ||
3 | * This file sets up platform devices for EMMA2RH Mark-eins. | ||
4 | * | ||
5 | * Copyright(C) MontaVista Software Inc, 2006 | 2 | * Copyright(C) MontaVista Software Inc, 2006 |
6 | * | 3 | * |
7 | * Author: dmitry pervushin <dpervushin@ru.mvista.com> | 4 | * Author: dmitry pervushin <dpervushin@ru.mvista.com> |
diff --git a/arch/mips/emma/markeins/setup.c b/arch/mips/emma/markeins/setup.c index 67f456500084..335dc8c1a1bb 100644 --- a/arch/mips/emma/markeins/setup.c +++ b/arch/mips/emma/markeins/setup.c | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/emma2rh/markeins/setup.c | ||
3 | * This file is setup for EMMA2RH Mark-eins. | ||
4 | * | ||
5 | * Copyright (C) NEC Electronics Corporation 2004-2006 | 2 | * Copyright (C) NEC Electronics Corporation 2004-2006 |
6 | * | 3 | * |
7 | * This file is based on the arch/mips/ddb5xxx/ddb5477/setup.c. | 4 | * This file is based on the arch/mips/ddb5xxx/ddb5477/setup.c. |
diff --git a/arch/mips/fw/lib/call_o32.S b/arch/mips/fw/lib/call_o32.S index bdf7d1d4081a..e0a68713b3c3 100644 --- a/arch/mips/fw/lib/call_o32.S +++ b/arch/mips/fw/lib/call_o32.S | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/dec/prom/call_o32.S | ||
3 | * | ||
4 | * O32 interface for the 64 (or N32) ABI. | 2 | * O32 interface for the 64 (or N32) ABI. |
5 | * | 3 | * |
6 | * Copyright (C) 2002 Maciej W. Rozycki | 4 | * Copyright (C) 2002 Maciej W. Rozycki |
diff --git a/arch/mips/include/asm/emma/emma2rh.h b/arch/mips/include/asm/emma/emma2rh.h index 30aea91de626..2afb2fe11b30 100644 --- a/arch/mips/include/asm/emma/emma2rh.h +++ b/arch/mips/include/asm/emma/emma2rh.h | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/include/asm/emma/emma2rh.h | ||
3 | * This file is EMMA2RH common header. | ||
4 | * | ||
5 | * Copyright (C) NEC Electronics Corporation 2005-2006 | 2 | * Copyright (C) NEC Electronics Corporation 2005-2006 |
6 | * | 3 | * |
7 | * This file based on include/asm-mips/ddb5xxx/ddb5xxx.h | 4 | * This file based on include/asm-mips/ddb5xxx/ddb5xxx.h |
diff --git a/arch/mips/include/asm/emma/markeins.h b/arch/mips/include/asm/emma/markeins.h index 973b0628490d..2618bf230248 100644 --- a/arch/mips/include/asm/emma/markeins.h +++ b/arch/mips/include/asm/emma/markeins.h | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-mips/emma2rh/markeins.h | ||
3 | * This file is EMMA2RH board depended header. | ||
4 | * | ||
5 | * Copyright (C) NEC Electronics Corporation 2005-2006 | 2 | * Copyright (C) NEC Electronics Corporation 2005-2006 |
6 | * | 3 | * |
7 | * This file based on include/asm-mips/ddb5xxx/ddb5xxx.h | 4 | * This file based on include/asm-mips/ddb5xxx/ddb5xxx.h |
diff --git a/arch/mips/include/asm/gic.h b/arch/mips/include/asm/gic.h index 10292e37c1f7..a8f57341f123 100644 --- a/arch/mips/include/asm/gic.h +++ b/arch/mips/include/asm/gic.h | |||
@@ -20,7 +20,7 @@ | |||
20 | #define GIC_TRIG_EDGE 1 | 20 | #define GIC_TRIG_EDGE 1 |
21 | #define GIC_TRIG_LEVEL 0 | 21 | #define GIC_TRIG_LEVEL 0 |
22 | 22 | ||
23 | #if CONFIG_SMP | 23 | #ifdef CONFIG_SMP |
24 | #define GIC_NUM_INTRS (24 + NR_CPUS * 2) | 24 | #define GIC_NUM_INTRS (24 + NR_CPUS * 2) |
25 | #else | 25 | #else |
26 | #define GIC_NUM_INTRS 32 | 26 | #define GIC_NUM_INTRS 32 |
diff --git a/arch/mips/include/asm/pmc-sierra/msp71xx/war.h b/arch/mips/include/asm/pmc-sierra/msp71xx/war.h index 0bf48fc1892b..9e2ee429c529 100644 --- a/arch/mips/include/asm/pmc-sierra/msp71xx/war.h +++ b/arch/mips/include/asm/pmc-sierra/msp71xx/war.h | |||
@@ -23,6 +23,8 @@ | |||
23 | #if defined(CONFIG_PMC_MSP7120_EVAL) || defined(CONFIG_PMC_MSP7120_GW) || \ | 23 | #if defined(CONFIG_PMC_MSP7120_EVAL) || defined(CONFIG_PMC_MSP7120_GW) || \ |
24 | defined(CONFIG_PMC_MSP7120_FPGA) | 24 | defined(CONFIG_PMC_MSP7120_FPGA) |
25 | #define MIPS34K_MISSED_ITLB_WAR 1 | 25 | #define MIPS34K_MISSED_ITLB_WAR 1 |
26 | #else | ||
27 | #define MIPS34K_MISSED_ITLB_WAR 0 | ||
26 | #endif | 28 | #endif |
27 | 29 | ||
28 | #endif /* __ASM_MIPS_PMC_SIERRA_WAR_H */ | 30 | #endif /* __ASM_MIPS_PMC_SIERRA_WAR_H */ |
diff --git a/arch/mips/include/asm/processor.h b/arch/mips/include/asm/processor.h index 0f926aa0cb47..087a8884ef06 100644 --- a/arch/mips/include/asm/processor.h +++ b/arch/mips/include/asm/processor.h | |||
@@ -311,8 +311,9 @@ extern void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long | |||
311 | 311 | ||
312 | unsigned long get_wchan(struct task_struct *p); | 312 | unsigned long get_wchan(struct task_struct *p); |
313 | 313 | ||
314 | #define __KSTK_TOS(tsk) ((unsigned long)task_stack_page(tsk) + THREAD_SIZE - 32) | 314 | #define __KSTK_TOS(tsk) ((unsigned long)task_stack_page(tsk) + \ |
315 | #define task_pt_regs(tsk) ((struct pt_regs *)__KSTK_TOS(tsk) - 1) | 315 | THREAD_SIZE - 32 - sizeof(struct pt_regs)) |
316 | #define task_pt_regs(tsk) ((struct pt_regs *)__KSTK_TOS(tsk)) | ||
316 | #define KSTK_EIP(tsk) (task_pt_regs(tsk)->cp0_epc) | 317 | #define KSTK_EIP(tsk) (task_pt_regs(tsk)->cp0_epc) |
317 | #define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[29]) | 318 | #define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[29]) |
318 | #define KSTK_STATUS(tsk) (task_pt_regs(tsk)->cp0_status) | 319 | #define KSTK_STATUS(tsk) (task_pt_regs(tsk)->cp0_status) |
diff --git a/arch/mips/include/asm/unistd.h b/arch/mips/include/asm/unistd.h index b70c49fdda26..e753a777949b 100644 --- a/arch/mips/include/asm/unistd.h +++ b/arch/mips/include/asm/unistd.h | |||
@@ -354,16 +354,17 @@ | |||
354 | #define __NR_pwritev (__NR_Linux + 331) | 354 | #define __NR_pwritev (__NR_Linux + 331) |
355 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 332) | 355 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 332) |
356 | #define __NR_perf_counter_open (__NR_Linux + 333) | 356 | #define __NR_perf_counter_open (__NR_Linux + 333) |
357 | #define __NR_accept4 (__NR_Linux + 334) | ||
357 | 358 | ||
358 | /* | 359 | /* |
359 | * Offset of the last Linux o32 flavoured syscall | 360 | * Offset of the last Linux o32 flavoured syscall |
360 | */ | 361 | */ |
361 | #define __NR_Linux_syscalls 333 | 362 | #define __NR_Linux_syscalls 334 |
362 | 363 | ||
363 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ | 364 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ |
364 | 365 | ||
365 | #define __NR_O32_Linux 4000 | 366 | #define __NR_O32_Linux 4000 |
366 | #define __NR_O32_Linux_syscalls 333 | 367 | #define __NR_O32_Linux_syscalls 334 |
367 | 368 | ||
368 | #if _MIPS_SIM == _MIPS_SIM_ABI64 | 369 | #if _MIPS_SIM == _MIPS_SIM_ABI64 |
369 | 370 | ||
@@ -664,16 +665,17 @@ | |||
664 | #define __NR_pwritev (__NR_Linux + 290) | 665 | #define __NR_pwritev (__NR_Linux + 290) |
665 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 291) | 666 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 291) |
666 | #define __NR_perf_counter_open (__NR_Linux + 292) | 667 | #define __NR_perf_counter_open (__NR_Linux + 292) |
668 | #define __NR_accept4 (__NR_Linux + 293) | ||
667 | 669 | ||
668 | /* | 670 | /* |
669 | * Offset of the last Linux 64-bit flavoured syscall | 671 | * Offset of the last Linux 64-bit flavoured syscall |
670 | */ | 672 | */ |
671 | #define __NR_Linux_syscalls 292 | 673 | #define __NR_Linux_syscalls 293 |
672 | 674 | ||
673 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ | 675 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ |
674 | 676 | ||
675 | #define __NR_64_Linux 5000 | 677 | #define __NR_64_Linux 5000 |
676 | #define __NR_64_Linux_syscalls 292 | 678 | #define __NR_64_Linux_syscalls 293 |
677 | 679 | ||
678 | #if _MIPS_SIM == _MIPS_SIM_NABI32 | 680 | #if _MIPS_SIM == _MIPS_SIM_NABI32 |
679 | 681 | ||
@@ -978,16 +980,17 @@ | |||
978 | #define __NR_pwritev (__NR_Linux + 294) | 980 | #define __NR_pwritev (__NR_Linux + 294) |
979 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 295) | 981 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 295) |
980 | #define __NR_perf_counter_open (__NR_Linux + 296) | 982 | #define __NR_perf_counter_open (__NR_Linux + 296) |
983 | #define __NR_accept4 (__NR_Linux + 297) | ||
981 | 984 | ||
982 | /* | 985 | /* |
983 | * Offset of the last N32 flavoured syscall | 986 | * Offset of the last N32 flavoured syscall |
984 | */ | 987 | */ |
985 | #define __NR_Linux_syscalls 296 | 988 | #define __NR_Linux_syscalls 297 |
986 | 989 | ||
987 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ | 990 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ |
988 | 991 | ||
989 | #define __NR_N32_Linux 6000 | 992 | #define __NR_N32_Linux 6000 |
990 | #define __NR_N32_Linux_syscalls 296 | 993 | #define __NR_N32_Linux_syscalls 297 |
991 | 994 | ||
992 | #ifdef __KERNEL__ | 995 | #ifdef __KERNEL__ |
993 | 996 | ||
diff --git a/arch/mips/jazz/jazzdma.c b/arch/mips/jazz/jazzdma.c index f0fd636723be..0d64d0f46418 100644 --- a/arch/mips/jazz/jazzdma.c +++ b/arch/mips/jazz/jazzdma.c | |||
@@ -190,7 +190,7 @@ int vdma_free(unsigned long laddr) | |||
190 | return -1; | 190 | return -1; |
191 | } | 191 | } |
192 | 192 | ||
193 | while (pgtbl[i].owner == laddr && i < VDMA_PGTBL_ENTRIES) { | 193 | while (i < VDMA_PGTBL_ENTRIES && pgtbl[i].owner == laddr) { |
194 | pgtbl[i].owner = VDMA_PAGE_EMPTY; | 194 | pgtbl[i].owner = VDMA_PAGE_EMPTY; |
195 | i++; | 195 | i++; |
196 | } | 196 | } |
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index 492a0a8d70fb..531ce7b16124 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S | |||
@@ -188,7 +188,8 @@ NESTED(kernel_entry, 16, sp) # kernel entry point | |||
188 | 188 | ||
189 | MTC0 zero, CP0_CONTEXT # clear context register | 189 | MTC0 zero, CP0_CONTEXT # clear context register |
190 | PTR_LA $28, init_thread_union | 190 | PTR_LA $28, init_thread_union |
191 | PTR_LI sp, _THREAD_SIZE - 32 | 191 | /* Set the SP after an empty pt_regs. */ |
192 | PTR_LI sp, _THREAD_SIZE - 32 - PT_SIZE | ||
192 | PTR_ADDU sp, $28 | 193 | PTR_ADDU sp, $28 |
193 | set_saved_sp sp, t0, t1 | 194 | set_saved_sp sp, t0, t1 |
194 | PTR_SUBU sp, 4 * SZREG # init stack pointer | 195 | PTR_SUBU sp, 4 * SZREG # init stack pointer |
diff --git a/arch/mips/kernel/irq_txx9.c b/arch/mips/kernel/irq_txx9.c index a4d1462c27f7..9b78029bea70 100644 --- a/arch/mips/kernel/irq_txx9.c +++ b/arch/mips/kernel/irq_txx9.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/kernel/irq_txx9.c | ||
3 | * | ||
4 | * Based on linux/arch/mips/jmr3927/rbhma3100/irq.c, | 2 | * Based on linux/arch/mips/jmr3927/rbhma3100/irq.c, |
5 | * linux/arch/mips/tx4927/common/tx4927_irq.c, | 3 | * linux/arch/mips/tx4927/common/tx4927_irq.c, |
6 | * linux/arch/mips/tx4938/common/irq.c | 4 | * linux/arch/mips/tx4938/common/irq.c |
diff --git a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c index 3e9100dcc12d..6f51dda87fce 100644 --- a/arch/mips/kernel/module.c +++ b/arch/mips/kernel/module.c | |||
@@ -98,7 +98,8 @@ static int apply_r_mips_32_rela(struct module *me, u32 *location, Elf_Addr v) | |||
98 | static int apply_r_mips_26_rel(struct module *me, u32 *location, Elf_Addr v) | 98 | static int apply_r_mips_26_rel(struct module *me, u32 *location, Elf_Addr v) |
99 | { | 99 | { |
100 | if (v % 4) { | 100 | if (v % 4) { |
101 | printk(KERN_ERR "module %s: dangerous relocation\n", me->name); | 101 | pr_err("module %s: dangerous R_MIPS_26 REL relocation\n", |
102 | me->name); | ||
102 | return -ENOEXEC; | 103 | return -ENOEXEC; |
103 | } | 104 | } |
104 | 105 | ||
@@ -118,7 +119,8 @@ static int apply_r_mips_26_rel(struct module *me, u32 *location, Elf_Addr v) | |||
118 | static int apply_r_mips_26_rela(struct module *me, u32 *location, Elf_Addr v) | 119 | static int apply_r_mips_26_rela(struct module *me, u32 *location, Elf_Addr v) |
119 | { | 120 | { |
120 | if (v % 4) { | 121 | if (v % 4) { |
121 | printk(KERN_ERR "module %s: dangerous relocation\n", me->name); | 122 | pr_err("module %s: dangerous R_MIPS_26 RELArelocation\n", |
123 | me->name); | ||
122 | return -ENOEXEC; | 124 | return -ENOEXEC; |
123 | } | 125 | } |
124 | 126 | ||
@@ -222,7 +224,7 @@ static int apply_r_mips_lo16_rel(struct module *me, u32 *location, Elf_Addr v) | |||
222 | return 0; | 224 | return 0; |
223 | 225 | ||
224 | out_danger: | 226 | out_danger: |
225 | printk(KERN_ERR "module %s: dangerous " "relocation\n", me->name); | 227 | pr_err("module %s: dangerous R_MIPS_LO16 REL relocation\n", me->name); |
226 | 228 | ||
227 | return -ENOEXEC; | 229 | return -ENOEXEC; |
228 | } | 230 | } |
@@ -301,7 +303,7 @@ int apply_relocate(Elf_Shdr *sechdrs, const char *strtab, | |||
301 | /* This is the symbol it is referring to */ | 303 | /* This is the symbol it is referring to */ |
302 | sym = (Elf_Sym *)sechdrs[symindex].sh_addr | 304 | sym = (Elf_Sym *)sechdrs[symindex].sh_addr |
303 | + ELF_MIPS_R_SYM(rel[i]); | 305 | + ELF_MIPS_R_SYM(rel[i]); |
304 | if (!sym->st_value) { | 306 | if (IS_ERR_VALUE(sym->st_value)) { |
305 | /* Ignore unresolved weak symbol */ | 307 | /* Ignore unresolved weak symbol */ |
306 | if (ELF_ST_BIND(sym->st_info) == STB_WEAK) | 308 | if (ELF_ST_BIND(sym->st_info) == STB_WEAK) |
307 | continue; | 309 | continue; |
@@ -341,7 +343,7 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab, | |||
341 | /* This is the symbol it is referring to */ | 343 | /* This is the symbol it is referring to */ |
342 | sym = (Elf_Sym *)sechdrs[symindex].sh_addr | 344 | sym = (Elf_Sym *)sechdrs[symindex].sh_addr |
343 | + ELF_MIPS_R_SYM(rel[i]); | 345 | + ELF_MIPS_R_SYM(rel[i]); |
344 | if (!sym->st_value) { | 346 | if (IS_ERR_VALUE(sym->st_value)) { |
345 | /* Ignore unresolved weak symbol */ | 347 | /* Ignore unresolved weak symbol */ |
346 | if (ELF_ST_BIND(sym->st_info) == STB_WEAK) | 348 | if (ELF_ST_BIND(sym->st_info) == STB_WEAK) |
347 | continue; | 349 | continue; |
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c index e0a4ac18fa07..26109c4d5170 100644 --- a/arch/mips/kernel/proc.c +++ b/arch/mips/kernel/proc.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/kernel/proc.c | ||
3 | * | ||
4 | * Copyright (C) 1995, 1996, 2001 Ralf Baechle | 2 | * Copyright (C) 1995, 1996, 2001 Ralf Baechle |
5 | * Copyright (C) 2001, 2004 MIPS Technologies, Inc. | 3 | * Copyright (C) 2001, 2004 MIPS Technologies, Inc. |
6 | * Copyright (C) 2004 Maciej W. Rozycki | 4 | * Copyright (C) 2004 Maciej W. Rozycki |
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index c09d681b7181..f3d73e1831c1 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c | |||
@@ -115,7 +115,7 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, | |||
115 | { | 115 | { |
116 | struct thread_info *ti = task_thread_info(p); | 116 | struct thread_info *ti = task_thread_info(p); |
117 | struct pt_regs *childregs; | 117 | struct pt_regs *childregs; |
118 | long childksp; | 118 | unsigned long childksp; |
119 | p->set_child_tid = p->clear_child_tid = NULL; | 119 | p->set_child_tid = p->clear_child_tid = NULL; |
120 | 120 | ||
121 | childksp = (unsigned long)task_stack_page(p) + THREAD_SIZE - 32; | 121 | childksp = (unsigned long)task_stack_page(p) + THREAD_SIZE - 32; |
@@ -132,6 +132,8 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, | |||
132 | 132 | ||
133 | /* set up new TSS. */ | 133 | /* set up new TSS. */ |
134 | childregs = (struct pt_regs *) childksp - 1; | 134 | childregs = (struct pt_regs *) childksp - 1; |
135 | /* Put the stack after the struct pt_regs. */ | ||
136 | childksp = (unsigned long) childregs; | ||
135 | *childregs = *regs; | 137 | *childregs = *regs; |
136 | childregs->regs[7] = 0; /* Clear error flag */ | 138 | childregs->regs[7] = 0; /* Clear error flag */ |
137 | 139 | ||
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index 20a86e08fd58..b57082123536 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
@@ -654,6 +654,7 @@ einval: li v0, -ENOSYS | |||
654 | sys sys_pwritev 6 | 654 | sys sys_pwritev 6 |
655 | sys sys_rt_tgsigqueueinfo 4 | 655 | sys sys_rt_tgsigqueueinfo 4 |
656 | sys sys_perf_counter_open 5 | 656 | sys sys_perf_counter_open 5 |
657 | sys sys_accept4 4 | ||
657 | .endm | 658 | .endm |
658 | 659 | ||
659 | /* We pre-compute the number of _instruction_ bytes needed to | 660 | /* 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 b046130d4c5d..3d866f24e064 100644 --- a/arch/mips/kernel/scall64-64.S +++ b/arch/mips/kernel/scall64-64.S | |||
@@ -491,4 +491,5 @@ sys_call_table: | |||
491 | PTR sys_pwritev /* 5390 */ | 491 | PTR sys_pwritev /* 5390 */ |
492 | PTR sys_rt_tgsigqueueinfo | 492 | PTR sys_rt_tgsigqueueinfo |
493 | PTR sys_perf_counter_open | 493 | PTR sys_perf_counter_open |
494 | PTR sys_accept4 | ||
494 | .size sys_call_table,.-sys_call_table | 495 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index 15874f9812cc..e855b118a079 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S | |||
@@ -417,4 +417,5 @@ EXPORT(sysn32_call_table) | |||
417 | PTR sys_pwritev | 417 | PTR sys_pwritev |
418 | PTR compat_sys_rt_tgsigqueueinfo /* 5295 */ | 418 | PTR compat_sys_rt_tgsigqueueinfo /* 5295 */ |
419 | PTR sys_perf_counter_open | 419 | PTR sys_perf_counter_open |
420 | PTR sys_accept4 | ||
420 | .size sysn32_call_table,.-sysn32_call_table | 421 | .size sysn32_call_table,.-sysn32_call_table |
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index 781e0f1e9533..0c49f1a660be 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S | |||
@@ -537,4 +537,5 @@ sys_call_table: | |||
537 | PTR compat_sys_pwritev | 537 | PTR compat_sys_pwritev |
538 | PTR compat_sys_rt_tgsigqueueinfo | 538 | PTR compat_sys_rt_tgsigqueueinfo |
539 | PTR sys_perf_counter_open | 539 | PTR sys_perf_counter_open |
540 | PTR sys_accept4 | ||
540 | .size sys_call_table,.-sys_call_table | 541 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c index 8a0626cbb108..c16bb6d6c25c 100644 --- a/arch/mips/kernel/smtc.c +++ b/arch/mips/kernel/smtc.c | |||
@@ -465,11 +465,8 @@ void smtc_prepare_cpus(int cpus) | |||
465 | smtc_configure_tlb(); | 465 | smtc_configure_tlb(); |
466 | 466 | ||
467 | for (tc = 0, vpe = 0 ; (vpe < nvpe) && (tc < ntc) ; vpe++) { | 467 | for (tc = 0, vpe = 0 ; (vpe < nvpe) && (tc < ntc) ; vpe++) { |
468 | /* | 468 | if (tcpervpe[vpe] == 0) |
469 | * Set the MVP bits. | 469 | continue; |
470 | */ | ||
471 | settc(tc); | ||
472 | write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | VPECONF0_MVP); | ||
473 | if (vpe != 0) | 470 | if (vpe != 0) |
474 | printk(", "); | 471 | printk(", "); |
475 | printk("VPE %d: TC", vpe); | 472 | printk("VPE %d: TC", vpe); |
@@ -488,6 +485,12 @@ void smtc_prepare_cpus(int cpus) | |||
488 | } | 485 | } |
489 | if (vpe != 0) { | 486 | if (vpe != 0) { |
490 | /* | 487 | /* |
488 | * Allow this VPE to control others. | ||
489 | */ | ||
490 | write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | | ||
491 | VPECONF0_MVP); | ||
492 | |||
493 | /* | ||
491 | * Clear any stale software interrupts from VPE's Cause | 494 | * Clear any stale software interrupts from VPE's Cause |
492 | */ | 495 | */ |
493 | write_vpe_c0_cause(0); | 496 | write_vpe_c0_cause(0); |
diff --git a/arch/mips/kernel/stacktrace.c b/arch/mips/kernel/stacktrace.c index 58f5cd76c8c3..d52ff77baf3f 100644 --- a/arch/mips/kernel/stacktrace.c +++ b/arch/mips/kernel/stacktrace.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/kernel/stacktrace.c | ||
3 | * | ||
4 | * Stack trace management functions | 2 | * Stack trace management functions |
5 | * | 3 | * |
6 | * Copyright (C) 2006 Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 4 | * Copyright (C) 2006 Atsushi Nemoto <anemo@mba.ocn.ne.jp> |
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c index 07b9ec2c6e3d..9a1ab7e87fd4 100644 --- a/arch/mips/kernel/vpe.c +++ b/arch/mips/kernel/vpe.c | |||
@@ -73,7 +73,7 @@ static int major; | |||
73 | static const int minor = 1; /* fixed for now */ | 73 | static const int minor = 1; /* fixed for now */ |
74 | 74 | ||
75 | #ifdef CONFIG_MIPS_APSP_KSPD | 75 | #ifdef CONFIG_MIPS_APSP_KSPD |
76 | static struct kspd_notifications kspd_events; | 76 | static struct kspd_notifications kspd_events; |
77 | static int kspd_events_reqd = 0; | 77 | static int kspd_events_reqd = 0; |
78 | #endif | 78 | #endif |
79 | 79 | ||
@@ -155,10 +155,9 @@ struct { | |||
155 | }; | 155 | }; |
156 | 156 | ||
157 | static void release_progmem(void *ptr); | 157 | static void release_progmem(void *ptr); |
158 | extern void save_gp_address(unsigned int secbase, unsigned int rel); | ||
159 | 158 | ||
160 | /* get the vpe associated with this minor */ | 159 | /* get the vpe associated with this minor */ |
161 | struct vpe *get_vpe(int minor) | 160 | static struct vpe *get_vpe(int minor) |
162 | { | 161 | { |
163 | struct vpe *v; | 162 | struct vpe *v; |
164 | 163 | ||
@@ -174,7 +173,7 @@ struct vpe *get_vpe(int minor) | |||
174 | } | 173 | } |
175 | 174 | ||
176 | /* get the vpe associated with this minor */ | 175 | /* get the vpe associated with this minor */ |
177 | struct tc *get_tc(int index) | 176 | static struct tc *get_tc(int index) |
178 | { | 177 | { |
179 | struct tc *t; | 178 | struct tc *t; |
180 | 179 | ||
@@ -186,20 +185,8 @@ struct tc *get_tc(int index) | |||
186 | return NULL; | 185 | return NULL; |
187 | } | 186 | } |
188 | 187 | ||
189 | struct tc *get_tc_unused(void) | ||
190 | { | ||
191 | struct tc *t; | ||
192 | |||
193 | list_for_each_entry(t, &vpecontrol.tc_list, list) { | ||
194 | if (t->state == TC_STATE_UNUSED) | ||
195 | return t; | ||
196 | } | ||
197 | |||
198 | return NULL; | ||
199 | } | ||
200 | |||
201 | /* allocate a vpe and associate it with this minor (or index) */ | 188 | /* allocate a vpe and associate it with this minor (or index) */ |
202 | struct vpe *alloc_vpe(int minor) | 189 | static struct vpe *alloc_vpe(int minor) |
203 | { | 190 | { |
204 | struct vpe *v; | 191 | struct vpe *v; |
205 | 192 | ||
@@ -216,7 +203,7 @@ struct vpe *alloc_vpe(int minor) | |||
216 | } | 203 | } |
217 | 204 | ||
218 | /* allocate a tc. At startup only tc0 is running, all other can be halted. */ | 205 | /* allocate a tc. At startup only tc0 is running, all other can be halted. */ |
219 | struct tc *alloc_tc(int index) | 206 | static struct tc *alloc_tc(int index) |
220 | { | 207 | { |
221 | struct tc *tc; | 208 | struct tc *tc; |
222 | 209 | ||
@@ -232,7 +219,7 @@ out: | |||
232 | } | 219 | } |
233 | 220 | ||
234 | /* clean up and free everything */ | 221 | /* clean up and free everything */ |
235 | void release_vpe(struct vpe *v) | 222 | static void release_vpe(struct vpe *v) |
236 | { | 223 | { |
237 | list_del(&v->list); | 224 | list_del(&v->list); |
238 | if (v->load_addr) | 225 | if (v->load_addr) |
@@ -240,7 +227,7 @@ void release_vpe(struct vpe *v) | |||
240 | kfree(v); | 227 | kfree(v); |
241 | } | 228 | } |
242 | 229 | ||
243 | void dump_mtregs(void) | 230 | static void dump_mtregs(void) |
244 | { | 231 | { |
245 | unsigned long val; | 232 | unsigned long val; |
246 | 233 | ||
@@ -327,7 +314,8 @@ static void layout_sections(struct module *mod, const Elf_Ehdr * hdr, | |||
327 | || (s->sh_flags & masks[m][1]) | 314 | || (s->sh_flags & masks[m][1]) |
328 | || s->sh_entsize != ~0UL) | 315 | || s->sh_entsize != ~0UL) |
329 | continue; | 316 | continue; |
330 | s->sh_entsize = get_offset(&mod->core_size, s); | 317 | s->sh_entsize = |
318 | get_offset((unsigned long *)&mod->core_size, s); | ||
331 | } | 319 | } |
332 | 320 | ||
333 | if (m == 0) | 321 | if (m == 0) |
@@ -461,16 +449,15 @@ static int apply_r_mips_lo16(struct module *me, uint32_t *location, | |||
461 | { | 449 | { |
462 | unsigned long insnlo = *location; | 450 | unsigned long insnlo = *location; |
463 | Elf32_Addr val, vallo; | 451 | Elf32_Addr val, vallo; |
452 | struct mips_hi16 *l, *next; | ||
464 | 453 | ||
465 | /* Sign extend the addend we extract from the lo insn. */ | 454 | /* Sign extend the addend we extract from the lo insn. */ |
466 | vallo = ((insnlo & 0xffff) ^ 0x8000) - 0x8000; | 455 | vallo = ((insnlo & 0xffff) ^ 0x8000) - 0x8000; |
467 | 456 | ||
468 | if (mips_hi16_list != NULL) { | 457 | if (mips_hi16_list != NULL) { |
469 | struct mips_hi16 *l; | ||
470 | 458 | ||
471 | l = mips_hi16_list; | 459 | l = mips_hi16_list; |
472 | while (l != NULL) { | 460 | while (l != NULL) { |
473 | struct mips_hi16 *next; | ||
474 | unsigned long insn; | 461 | unsigned long insn; |
475 | 462 | ||
476 | /* | 463 | /* |
@@ -480,7 +467,7 @@ static int apply_r_mips_lo16(struct module *me, uint32_t *location, | |||
480 | printk(KERN_DEBUG "VPE loader: " | 467 | printk(KERN_DEBUG "VPE loader: " |
481 | "apply_r_mips_lo16/hi16: \t" | 468 | "apply_r_mips_lo16/hi16: \t" |
482 | "inconsistent value information\n"); | 469 | "inconsistent value information\n"); |
483 | return -ENOEXEC; | 470 | goto out_free; |
484 | } | 471 | } |
485 | 472 | ||
486 | /* | 473 | /* |
@@ -518,6 +505,16 @@ static int apply_r_mips_lo16(struct module *me, uint32_t *location, | |||
518 | *location = insnlo; | 505 | *location = insnlo; |
519 | 506 | ||
520 | return 0; | 507 | return 0; |
508 | |||
509 | out_free: | ||
510 | while (l != NULL) { | ||
511 | next = l->next; | ||
512 | kfree(l); | ||
513 | l = next; | ||
514 | } | ||
515 | mips_hi16_list = NULL; | ||
516 | |||
517 | return -ENOEXEC; | ||
521 | } | 518 | } |
522 | 519 | ||
523 | static int (*reloc_handlers[]) (struct module *me, uint32_t *location, | 520 | static int (*reloc_handlers[]) (struct module *me, uint32_t *location, |
@@ -541,7 +538,7 @@ static char *rstrs[] = { | |||
541 | [R_MIPS_PC16] = "MIPS_PC16" | 538 | [R_MIPS_PC16] = "MIPS_PC16" |
542 | }; | 539 | }; |
543 | 540 | ||
544 | int apply_relocations(Elf32_Shdr *sechdrs, | 541 | static int apply_relocations(Elf32_Shdr *sechdrs, |
545 | const char *strtab, | 542 | const char *strtab, |
546 | unsigned int symindex, | 543 | unsigned int symindex, |
547 | unsigned int relsec, | 544 | unsigned int relsec, |
@@ -586,7 +583,7 @@ int apply_relocations(Elf32_Shdr *sechdrs, | |||
586 | return 0; | 583 | return 0; |
587 | } | 584 | } |
588 | 585 | ||
589 | void save_gp_address(unsigned int secbase, unsigned int rel) | 586 | static inline void save_gp_address(unsigned int secbase, unsigned int rel) |
590 | { | 587 | { |
591 | gp_addr = secbase + rel; | 588 | gp_addr = secbase + rel; |
592 | gp_offs = gp_addr - (secbase & 0xffff0000); | 589 | gp_offs = gp_addr - (secbase & 0xffff0000); |
diff --git a/arch/mips/mipssim/sim_time.c b/arch/mips/mipssim/sim_time.c index 0cea932f1241..5492c42f7650 100644 --- a/arch/mips/mipssim/sim_time.c +++ b/arch/mips/mipssim/sim_time.c | |||
@@ -89,13 +89,13 @@ unsigned __cpuinit get_c0_compare_int(void) | |||
89 | if (cpu_has_veic) { | 89 | if (cpu_has_veic) { |
90 | set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch); | 90 | set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch); |
91 | mips_cpu_timer_irq = MSC01E_INT_BASE + MSC01E_INT_CPUCTR; | 91 | mips_cpu_timer_irq = MSC01E_INT_BASE + MSC01E_INT_CPUCTR; |
92 | } else { | 92 | |
93 | #endif | 93 | return mips_cpu_timer_irq; |
94 | { | ||
95 | if (cpu_has_vint) | ||
96 | set_vi_handler(cp0_compare_irq, mips_timer_dispatch); | ||
97 | mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq; | ||
98 | } | 94 | } |
95 | #endif | ||
96 | if (cpu_has_vint) | ||
97 | set_vi_handler(cp0_compare_irq, mips_timer_dispatch); | ||
98 | mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq; | ||
99 | 99 | ||
100 | return mips_cpu_timer_irq; | 100 | return mips_cpu_timer_irq; |
101 | } | 101 | } |
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c index b165cdcb2818..10ab69f7183f 100644 --- a/arch/mips/mm/c-octeon.c +++ b/arch/mips/mm/c-octeon.c | |||
@@ -289,7 +289,7 @@ static void cache_parity_error_octeon(int non_recoverable) | |||
289 | } | 289 | } |
290 | 290 | ||
291 | /** | 291 | /** |
292 | * Called when the the exception is not recoverable | 292 | * Called when the the exception is recoverable |
293 | */ | 293 | */ |
294 | 294 | ||
295 | asmlinkage void cache_parity_error_octeon_recoverable(void) | 295 | asmlinkage void cache_parity_error_octeon_recoverable(void) |
@@ -298,7 +298,7 @@ asmlinkage void cache_parity_error_octeon_recoverable(void) | |||
298 | } | 298 | } |
299 | 299 | ||
300 | /** | 300 | /** |
301 | * Called when the the exception is recoverable | 301 | * Called when the the exception is not recoverable |
302 | */ | 302 | */ |
303 | 303 | ||
304 | asmlinkage void cache_parity_error_octeon_non_recoverable(void) | 304 | asmlinkage void cache_parity_error_octeon_non_recoverable(void) |
diff --git a/arch/mips/mm/extable.c b/arch/mips/mm/extable.c index 297fb9f390dc..9d25d2ba4b9e 100644 --- a/arch/mips/mm/extable.c +++ b/arch/mips/mm/extable.c | |||
@@ -1,5 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/mm/extable.c | 2 | * This file is subject to the terms and conditions of the GNU General Public |
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1997, 99, 2001 - 2004 Ralf Baechle <ralf@linux-mips.org> | ||
3 | */ | 7 | */ |
4 | #include <linux/module.h> | 8 | #include <linux/module.h> |
5 | #include <linux/spinlock.h> | 9 | #include <linux/spinlock.h> |
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index 6751ce9ede9e..f956ecbb8136 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c | |||
@@ -171,6 +171,7 @@ out_of_memory: | |||
171 | * We ran out of memory, call the OOM killer, and return the userspace | 171 | * We ran out of memory, call the OOM killer, and return the userspace |
172 | * (which will retry the fault, or kill us if we got oom-killed). | 172 | * (which will retry the fault, or kill us if we got oom-killed). |
173 | */ | 173 | */ |
174 | up_read(&mm->mmap_sem); | ||
174 | pagefault_out_of_memory(); | 175 | pagefault_out_of_memory(); |
175 | return; | 176 | return; |
176 | 177 | ||
diff --git a/arch/mips/mti-malta/malta-int.c b/arch/mips/mti-malta/malta-int.c index a8756f82c31b..3e0a9b35ba5c 100644 --- a/arch/mips/mti-malta/malta-int.c +++ b/arch/mips/mti-malta/malta-int.c | |||
@@ -331,6 +331,7 @@ static struct irqaction irq_call = { | |||
331 | .flags = IRQF_DISABLED|IRQF_PERCPU, | 331 | .flags = IRQF_DISABLED|IRQF_PERCPU, |
332 | .name = "IPI_call" | 332 | .name = "IPI_call" |
333 | }; | 333 | }; |
334 | #endif /* CONFIG_MIPS_MT_SMP */ | ||
334 | 335 | ||
335 | static int gic_resched_int_base; | 336 | static int gic_resched_int_base; |
336 | static int gic_call_int_base; | 337 | static int gic_call_int_base; |
@@ -346,7 +347,6 @@ unsigned int plat_ipi_resched_int_xlate(unsigned int cpu) | |||
346 | { | 347 | { |
347 | return GIC_RESCHED_INT(cpu); | 348 | return GIC_RESCHED_INT(cpu); |
348 | } | 349 | } |
349 | #endif /* CONFIG_MIPS_MT_SMP */ | ||
350 | 350 | ||
351 | static struct irqaction i8259irq = { | 351 | static struct irqaction i8259irq = { |
352 | .handler = no_action, | 352 | .handler = no_action, |
diff --git a/arch/mips/nxp/pnx8550/common/time.c b/arch/mips/nxp/pnx8550/common/time.c index 8df43e9e4d90..18b192784877 100644 --- a/arch/mips/nxp/pnx8550/common/time.c +++ b/arch/mips/nxp/pnx8550/common/time.c | |||
@@ -138,7 +138,7 @@ __init void plat_time_init(void) | |||
138 | * HZ timer interrupts per second. | 138 | * HZ timer interrupts per second. |
139 | */ | 139 | */ |
140 | mips_hpt_frequency = 27UL * ((1000000UL * n)/(m * pow2p)); | 140 | mips_hpt_frequency = 27UL * ((1000000UL * n)/(m * pow2p)); |
141 | cpj = (mips_hpt_frequency + HZ / 2) / HZ; | 141 | cpj = DIV_ROUND_CLOSEST(mips_hpt_frequency, HZ); |
142 | write_c0_count(0); | 142 | write_c0_count(0); |
143 | timer_ack(); | 143 | timer_ack(); |
144 | 144 | ||
diff --git a/arch/mips/pci/fixup-emma2rh.c b/arch/mips/pci/fixup-emma2rh.c index fba5aad00d51..0d9ccf4dfc5a 100644 --- a/arch/mips/pci/fixup-emma2rh.c +++ b/arch/mips/pci/fixup-emma2rh.c | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/pci/fixup-emma2rh.c | ||
3 | * This file defines the PCI configration. | ||
4 | * | ||
5 | * Copyright (C) NEC Electronics Corporation 2004-2006 | 2 | * Copyright (C) NEC Electronics Corporation 2004-2006 |
6 | * | 3 | * |
7 | * This file is based on the arch/mips/ddb5xxx/ddb5477/pci.c | 4 | * This file is based on the arch/mips/ddb5xxx/ddb5477/pci.c |
diff --git a/arch/mips/pci/fixup-sb1250.c b/arch/mips/pci/fixup-sb1250.c index 0ad39e53f7b1..f0bb9146e6c0 100644 --- a/arch/mips/pci/fixup-sb1250.c +++ b/arch/mips/pci/fixup-sb1250.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/pci/fixup-sb1250.c | ||
3 | * | ||
4 | * Copyright (C) 2004, 2006 MIPS Technologies, Inc. All rights reserved. | 2 | * Copyright (C) 2004, 2006 MIPS Technologies, Inc. All rights reserved. |
5 | * Author: Maciej W. Rozycki <macro@mips.com> | 3 | * Author: Maciej W. Rozycki <macro@mips.com> |
6 | * | 4 | * |
diff --git a/arch/mips/pci/ops-emma2rh.c b/arch/mips/pci/ops-emma2rh.c index 5947a70b0b7f..710aef5c070e 100644 --- a/arch/mips/pci/ops-emma2rh.c +++ b/arch/mips/pci/ops-emma2rh.c | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/pci/ops-emma2rh.c | ||
3 | * This file defines the PCI operation for EMMA2RH. | ||
4 | * | ||
5 | * Copyright (C) NEC Electronics Corporation 2004-2006 | 2 | * Copyright (C) NEC Electronics Corporation 2004-2006 |
6 | * | 3 | * |
7 | * This file is based on the arch/mips/pci/ops-vr41xx.c | 4 | * This file is based on the arch/mips/pci/ops-vr41xx.c |
diff --git a/arch/mips/pci/pci-emma2rh.c b/arch/mips/pci/pci-emma2rh.c index 2df4190232cd..773e34ff4d1c 100644 --- a/arch/mips/pci/pci-emma2rh.c +++ b/arch/mips/pci/pci-emma2rh.c | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/pci/pci-emma2rh.c | ||
3 | * This file defines the PCI configration. | ||
4 | * | ||
5 | * Copyright (C) NEC Electronics Corporation 2004-2006 | 2 | * Copyright (C) NEC Electronics Corporation 2004-2006 |
6 | * | 3 | * |
7 | * This file is based on the arch/mips/ddb5xxx/ddb5477/pci.c | 4 | * This file is based on the arch/mips/ddb5xxx/ddb5477/pci.c |
diff --git a/arch/mips/pci/pci-tx4927.c b/arch/mips/pci/pci-tx4927.c index aaa900596792..a5807406a7f1 100644 --- a/arch/mips/pci/pci-tx4927.c +++ b/arch/mips/pci/pci-tx4927.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/pci/pci-tx4927.c | ||
3 | * | ||
4 | * Based on linux/arch/mips/txx9/rbtx4938/setup.c, | 2 | * Based on linux/arch/mips/txx9/rbtx4938/setup.c, |
5 | * and RBTX49xx patch from CELF patch archive. | 3 | * and RBTX49xx patch from CELF patch archive. |
6 | * | 4 | * |
diff --git a/arch/mips/pci/pci-tx4938.c b/arch/mips/pci/pci-tx4938.c index 1ea257bc3b8f..20e45f30b2ef 100644 --- a/arch/mips/pci/pci-tx4938.c +++ b/arch/mips/pci/pci-tx4938.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/pci/pci-tx4938.c | ||
3 | * | ||
4 | * Based on linux/arch/mips/txx9/rbtx4938/setup.c, | 2 | * Based on linux/arch/mips/txx9/rbtx4938/setup.c, |
5 | * and RBTX49xx patch from CELF patch archive. | 3 | * and RBTX49xx patch from CELF patch archive. |
6 | * | 4 | * |
diff --git a/arch/mips/pci/pci-tx4939.c b/arch/mips/pci/pci-tx4939.c index 5fecf1cdc325..9ef840693baf 100644 --- a/arch/mips/pci/pci-tx4939.c +++ b/arch/mips/pci/pci-tx4939.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/pci/pci-tx4939.c | ||
3 | * | ||
4 | * Based on linux/arch/mips/txx9/rbtx4939/setup.c, | 2 | * Based on linux/arch/mips/txx9/rbtx4939/setup.c, |
5 | * and RBTX49xx patch from CELF patch archive. | 3 | * and RBTX49xx patch from CELF patch archive. |
6 | * | 4 | * |
diff --git a/arch/mips/pci/pcie-octeon.c b/arch/mips/pci/pcie-octeon.c index 75262247f3e4..6aa5c542d52d 100644 --- a/arch/mips/pci/pcie-octeon.c +++ b/arch/mips/pci/pcie-octeon.c | |||
@@ -1040,19 +1040,29 @@ static inline int octeon_pcie_read_config(int pcie_port, struct pci_bus *bus, | |||
1040 | int bus_number = bus->number; | 1040 | int bus_number = bus->number; |
1041 | 1041 | ||
1042 | /* | 1042 | /* |
1043 | * We need to force the bus number to be zero on the root | 1043 | * For the top level bus make sure our hardware bus number |
1044 | * bus. Linux numbers the 2nd root bus to start after all | 1044 | * matches the software one. |
1045 | * buses on root 0. | ||
1046 | */ | 1045 | */ |
1047 | if (bus->parent == NULL) | 1046 | if (bus->parent == NULL) { |
1048 | bus_number = 0; | 1047 | union cvmx_pciercx_cfg006 pciercx_cfg006; |
1048 | pciercx_cfg006.u32 = cvmx_pcie_cfgx_read(pcie_port, | ||
1049 | CVMX_PCIERCX_CFG006(pcie_port)); | ||
1050 | if (pciercx_cfg006.s.pbnum != bus_number) { | ||
1051 | pciercx_cfg006.s.pbnum = bus_number; | ||
1052 | pciercx_cfg006.s.sbnum = bus_number; | ||
1053 | pciercx_cfg006.s.subbnum = bus_number; | ||
1054 | cvmx_pcie_cfgx_write(pcie_port, | ||
1055 | CVMX_PCIERCX_CFG006(pcie_port), | ||
1056 | pciercx_cfg006.u32); | ||
1057 | } | ||
1058 | } | ||
1049 | 1059 | ||
1050 | /* | 1060 | /* |
1051 | * PCIe only has a single device connected to Octeon. It is | 1061 | * PCIe only has a single device connected to Octeon. It is |
1052 | * always device ID 0. Don't bother doing reads for other | 1062 | * always device ID 0. Don't bother doing reads for other |
1053 | * device IDs on the first segment. | 1063 | * device IDs on the first segment. |
1054 | */ | 1064 | */ |
1055 | if ((bus_number == 0) && (devfn >> 3 != 0)) | 1065 | if ((bus->parent == NULL) && (devfn >> 3 != 0)) |
1056 | return PCIBIOS_FUNC_NOT_SUPPORTED; | 1066 | return PCIBIOS_FUNC_NOT_SUPPORTED; |
1057 | 1067 | ||
1058 | /* | 1068 | /* |
@@ -1070,7 +1080,7 @@ static inline int octeon_pcie_read_config(int pcie_port, struct pci_bus *bus, | |||
1070 | * bridge only respondes to device ID 0, function | 1080 | * bridge only respondes to device ID 0, function |
1071 | * 0-1 | 1081 | * 0-1 |
1072 | */ | 1082 | */ |
1073 | if ((bus_number == 0) && (devfn >= 2)) | 1083 | if ((bus->parent == NULL) && (devfn >= 2)) |
1074 | return PCIBIOS_FUNC_NOT_SUPPORTED; | 1084 | return PCIBIOS_FUNC_NOT_SUPPORTED; |
1075 | /* | 1085 | /* |
1076 | * The PCI-X slots are device ID 2,3. Choose one of | 1086 | * The PCI-X slots are device ID 2,3. Choose one of |
@@ -1167,13 +1177,6 @@ static inline int octeon_pcie_write_config(int pcie_port, struct pci_bus *bus, | |||
1167 | int size, u32 val) | 1177 | int size, u32 val) |
1168 | { | 1178 | { |
1169 | int bus_number = bus->number; | 1179 | int bus_number = bus->number; |
1170 | /* | ||
1171 | * We need to force the bus number to be zero on the root | ||
1172 | * bus. Linux numbers the 2nd root bus to start after all | ||
1173 | * busses on root 0. | ||
1174 | */ | ||
1175 | if (bus->parent == NULL) | ||
1176 | bus_number = 0; | ||
1177 | 1180 | ||
1178 | switch (size) { | 1181 | switch (size) { |
1179 | case 4: | 1182 | case 4: |
diff --git a/arch/mips/pmc-sierra/msp71xx/gpio.c b/arch/mips/pmc-sierra/msp71xx/gpio.c index 69848c5813e2..aaccbe524386 100644 --- a/arch/mips/pmc-sierra/msp71xx/gpio.c +++ b/arch/mips/pmc-sierra/msp71xx/gpio.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * @file /arch/mips/pmc-sierra/msp71xx/gpio.c | ||
3 | * | ||
4 | * Generic PMC MSP71xx GPIO handling. These base gpio are controlled by two | 2 | * Generic PMC MSP71xx GPIO handling. These base gpio are controlled by two |
5 | * types of registers. The data register sets the output level when in output | 3 | * types of registers. The data register sets the output level when in output |
6 | * mode and when in input mode will contain the value at the input. The config | 4 | * mode and when in input mode will contain the value at the input. The config |
diff --git a/arch/mips/pmc-sierra/msp71xx/gpio_extended.c b/arch/mips/pmc-sierra/msp71xx/gpio_extended.c index fc6dbc6cf1c0..2a99f360fae4 100644 --- a/arch/mips/pmc-sierra/msp71xx/gpio_extended.c +++ b/arch/mips/pmc-sierra/msp71xx/gpio_extended.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * @file /arch/mips/pmc-sierra/msp71xx/gpio_extended.c | ||
3 | * | ||
4 | * Generic PMC MSP71xx EXTENDED (EXD) GPIO handling. The extended gpio is | 2 | * Generic PMC MSP71xx EXTENDED (EXD) GPIO handling. The extended gpio is |
5 | * a set of hardware registers that have no need for explicit locking as | 3 | * a set of hardware registers that have no need for explicit locking as |
6 | * it is handled by unique method of writing individual set/clr bits. | 4 | * it is handled by unique method of writing individual set/clr bits. |
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c b/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c index f5f1b8d2bb9a..61f390232346 100644 --- a/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c +++ b/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c | |||
@@ -45,13 +45,6 @@ static inline void mask_msp_slp_irq(unsigned int irq) | |||
45 | */ | 45 | */ |
46 | static inline void ack_msp_slp_irq(unsigned int irq) | 46 | static inline void ack_msp_slp_irq(unsigned int irq) |
47 | { | 47 | { |
48 | mask_slp_irq(irq); | ||
49 | |||
50 | /* | ||
51 | * only really necessary for 18, 16-14 and sometimes 3:0 (since | ||
52 | * these can be edge sensitive) but it doesn't hurt for the others. | ||
53 | */ | ||
54 | |||
55 | /* check for PER interrupt range */ | 48 | /* check for PER interrupt range */ |
56 | if (irq < MSP_PER_INTBASE) | 49 | if (irq < MSP_PER_INTBASE) |
57 | *SLP_INT_STS_REG = (1 << (irq - MSP_SLP_INTBASE)); | 50 | *SLP_INT_STS_REG = (1 << (irq - MSP_SLP_INTBASE)); |
@@ -62,8 +55,7 @@ static inline void ack_msp_slp_irq(unsigned int irq) | |||
62 | static struct irq_chip msp_slp_irq_controller = { | 55 | static struct irq_chip msp_slp_irq_controller = { |
63 | .name = "MSP_SLP", | 56 | .name = "MSP_SLP", |
64 | .ack = ack_msp_slp_irq, | 57 | .ack = ack_msp_slp_irq, |
65 | .mask = ack_msp_slp_irq, | 58 | .mask = mask_msp_slp_irq, |
66 | .mask_ack = ack_msp_slp_irq, | ||
67 | .unmask = unmask_msp_slp_irq, | 59 | .unmask = unmask_msp_slp_irq, |
68 | }; | 60 | }; |
69 | 61 | ||
@@ -79,7 +71,7 @@ void __init msp_slp_irq_init(void) | |||
79 | 71 | ||
80 | /* initialize all the IRQ descriptors */ | 72 | /* initialize all the IRQ descriptors */ |
81 | for (i = MSP_SLP_INTBASE; i < MSP_PER_INTBASE + 32; i++) | 73 | for (i = MSP_SLP_INTBASE; i < MSP_PER_INTBASE + 32; i++) |
82 | set_irq_chip_and_handler(i, &msp_slp_irq_controller | 74 | set_irq_chip_and_handler(i, &msp_slp_irq_controller, |
83 | handle_level_irq); | 75 | handle_level_irq); |
84 | } | 76 | } |
85 | 77 | ||
diff --git a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c index caf5e9a0acc7..fc990cb31941 100644 --- a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c +++ b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c | ||
3 | * | ||
4 | * Copyright (C) 2003 PMC-Sierra Inc. | 2 | * Copyright (C) 2003 PMC-Sierra Inc. |
5 | * Author: Manish Lachwani (lachwani@pmc-sierra.com) | 3 | * Author: Manish Lachwani (lachwani@pmc-sierra.com) |
6 | * | 4 | * |
diff --git a/arch/mips/sibyte/swarm/swarm-i2c.c b/arch/mips/sibyte/swarm/swarm-i2c.c index 4282ac9d01d2..062505054d42 100644 --- a/arch/mips/sibyte/swarm/swarm-i2c.c +++ b/arch/mips/sibyte/swarm/swarm-i2c.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/mips/sibyte/swarm/swarm-i2c.c | ||
3 | * | ||
4 | * Broadcom BCM91250A (SWARM), etc. I2C platform setup. | 2 | * Broadcom BCM91250A (SWARM), etc. I2C platform setup. |
5 | * | 3 | * |
6 | * Copyright (c) 2008 Maciej W. Rozycki | 4 | * Copyright (c) 2008 Maciej W. Rozycki |
diff --git a/arch/mips/txx9/generic/mem_tx4927.c b/arch/mips/txx9/generic/mem_tx4927.c index ef6ea6e97873..70f9626f8227 100644 --- a/arch/mips/txx9/generic/mem_tx4927.c +++ b/arch/mips/txx9/generic/mem_tx4927.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/txx9/generic/mem_tx4927.c | ||
3 | * | ||
4 | * common tx4927 memory interface | 2 | * common tx4927 memory interface |
5 | * | 3 | * |
6 | * Author: MontaVista Software, Inc. | 4 | * Author: MontaVista Software, Inc. |
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c index 3b7d77d61ce0..a205e2ba8e7b 100644 --- a/arch/mips/txx9/generic/setup.c +++ b/arch/mips/txx9/generic/setup.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/mips/txx9/generic/setup.c | ||
3 | * | ||
4 | * Based on linux/arch/mips/txx9/rbtx4938/setup.c, | 2 | * Based on linux/arch/mips/txx9/rbtx4938/setup.c, |
5 | * and RBTX49xx patch from CELF patch archive. | 3 | * and RBTX49xx patch from CELF patch archive. |
6 | * | 4 | * |
diff --git a/arch/mips/txx9/rbtx4939/setup.c b/arch/mips/txx9/rbtx4939/setup.c index c033ffe71cdf..b0c241ecf603 100644 --- a/arch/mips/txx9/rbtx4939/setup.c +++ b/arch/mips/txx9/rbtx4939/setup.c | |||
@@ -512,10 +512,10 @@ static void __init rbtx4939_setup(void) | |||
512 | rbtx4939_ebusc_setup(); | 512 | rbtx4939_ebusc_setup(); |
513 | /* always enable ATA0 */ | 513 | /* always enable ATA0 */ |
514 | txx9_set64(&tx4939_ccfgptr->pcfg, TX4939_PCFG_ATA0MODE); | 514 | txx9_set64(&tx4939_ccfgptr->pcfg, TX4939_PCFG_ATA0MODE); |
515 | rbtx4939_update_ioc_pen(); | ||
516 | if (txx9_master_clock == 0) | 515 | if (txx9_master_clock == 0) |
517 | txx9_master_clock = 20000000; | 516 | txx9_master_clock = 20000000; |
518 | tx4939_setup(); | 517 | tx4939_setup(); |
518 | rbtx4939_update_ioc_pen(); | ||
519 | #ifdef HAVE_RBTX4939_IOSWAB | 519 | #ifdef HAVE_RBTX4939_IOSWAB |
520 | ioswabw = rbtx4939_ioswabw; | 520 | ioswabw = rbtx4939_ioswabw; |
521 | __mem_ioswabw = rbtx4939_mem_ioswabw; | 521 | __mem_ioswabw = rbtx4939_mem_ioswabw; |