diff options
Diffstat (limited to 'arch/mips/include')
25 files changed, 183 insertions, 45 deletions
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h index 4a02fe891ab6..1d93f81d57e7 100644 --- a/arch/mips/include/asm/atomic.h +++ b/arch/mips/include/asm/atomic.h | |||
@@ -303,15 +303,15 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) | |||
303 | #define atomic_xchg(v, new) (xchg(&((v)->counter), (new))) | 303 | #define atomic_xchg(v, new) (xchg(&((v)->counter), (new))) |
304 | 304 | ||
305 | /** | 305 | /** |
306 | * atomic_add_unless - add unless the number is a given value | 306 | * __atomic_add_unless - add unless the number is a given value |
307 | * @v: pointer of type atomic_t | 307 | * @v: pointer of type atomic_t |
308 | * @a: the amount to add to v... | 308 | * @a: the amount to add to v... |
309 | * @u: ...unless v is equal to u. | 309 | * @u: ...unless v is equal to u. |
310 | * | 310 | * |
311 | * Atomically adds @a to @v, so long as it was not @u. | 311 | * Atomically adds @a to @v, so long as it was not @u. |
312 | * Returns non-zero if @v was not @u, and zero otherwise. | 312 | * Returns the old value of @v. |
313 | */ | 313 | */ |
314 | static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | 314 | static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
315 | { | 315 | { |
316 | int c, old; | 316 | int c, old; |
317 | c = atomic_read(v); | 317 | c = atomic_read(v); |
@@ -323,9 +323,8 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | |||
323 | break; | 323 | break; |
324 | c = old; | 324 | c = old; |
325 | } | 325 | } |
326 | return c != (u); | 326 | return c; |
327 | } | 327 | } |
328 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | ||
329 | 328 | ||
330 | #define atomic_dec_return(v) atomic_sub_return(1, (v)) | 329 | #define atomic_dec_return(v) atomic_sub_return(1, (v)) |
331 | #define atomic_inc_return(v) atomic_add_return(1, (v)) | 330 | #define atomic_inc_return(v) atomic_add_return(1, (v)) |
@@ -680,7 +679,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) | |||
680 | * @u: ...unless v is equal to u. | 679 | * @u: ...unless v is equal to u. |
681 | * | 680 | * |
682 | * Atomically adds @a to @v, so long as it was not @u. | 681 | * Atomically adds @a to @v, so long as it was not @u. |
683 | * Returns non-zero if @v was not @u, and zero otherwise. | 682 | * Returns the old value of @v. |
684 | */ | 683 | */ |
685 | static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) | 684 | static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
686 | { | 685 | { |
@@ -766,10 +765,6 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) | |||
766 | */ | 765 | */ |
767 | #define atomic64_add_negative(i, v) (atomic64_add_return(i, (v)) < 0) | 766 | #define atomic64_add_negative(i, v) (atomic64_add_return(i, (v)) < 0) |
768 | 767 | ||
769 | #else /* !CONFIG_64BIT */ | ||
770 | |||
771 | #include <asm-generic/atomic64.h> | ||
772 | |||
773 | #endif /* CONFIG_64BIT */ | 768 | #endif /* CONFIG_64BIT */ |
774 | 769 | ||
775 | /* | 770 | /* |
@@ -781,6 +776,4 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) | |||
781 | #define smp_mb__before_atomic_inc() smp_mb__before_llsc() | 776 | #define smp_mb__before_atomic_inc() smp_mb__before_llsc() |
782 | #define smp_mb__after_atomic_inc() smp_llsc_mb() | 777 | #define smp_mb__after_atomic_inc() smp_llsc_mb() |
783 | 778 | ||
784 | #include <asm-generic/atomic-long.h> | ||
785 | |||
786 | #endif /* _ASM_ATOMIC_H */ | 779 | #endif /* _ASM_ATOMIC_H */ |
diff --git a/arch/mips/include/asm/fixmap.h b/arch/mips/include/asm/fixmap.h index 0b89b83e2055..98bcc98cf29b 100644 --- a/arch/mips/include/asm/fixmap.h +++ b/arch/mips/include/asm/fixmap.h | |||
@@ -14,6 +14,7 @@ | |||
14 | #define _ASM_FIXMAP_H | 14 | #define _ASM_FIXMAP_H |
15 | 15 | ||
16 | #include <asm/page.h> | 16 | #include <asm/page.h> |
17 | #include <spaces.h> | ||
17 | #ifdef CONFIG_HIGHMEM | 18 | #ifdef CONFIG_HIGHMEM |
18 | #include <linux/threads.h> | 19 | #include <linux/threads.h> |
19 | #include <asm/kmap_types.h> | 20 | #include <asm/kmap_types.h> |
@@ -67,15 +68,6 @@ enum fixed_addresses { | |||
67 | * the start of the fixmap, and leave one page empty | 68 | * the start of the fixmap, and leave one page empty |
68 | * at the top of mem.. | 69 | * at the top of mem.. |
69 | */ | 70 | */ |
70 | #ifdef CONFIG_BCM63XX | ||
71 | #define FIXADDR_TOP ((unsigned long)(long)(int)0xff000000) | ||
72 | #else | ||
73 | #if defined(CONFIG_CPU_TX39XX) || defined(CONFIG_CPU_TX49XX) | ||
74 | #define FIXADDR_TOP ((unsigned long)(long)(int)(0xff000000 - 0x20000)) | ||
75 | #else | ||
76 | #define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000) | ||
77 | #endif | ||
78 | #endif | ||
79 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | 71 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) |
80 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) | 72 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) |
81 | 73 | ||
diff --git a/arch/mips/include/asm/gt64120.h b/arch/mips/include/asm/gt64120.h index e64b41093c49..0aa44abc77fe 100644 --- a/arch/mips/include/asm/gt64120.h +++ b/arch/mips/include/asm/gt64120.h | |||
@@ -21,8 +21,6 @@ | |||
21 | #ifndef _ASM_GT64120_H | 21 | #ifndef _ASM_GT64120_H |
22 | #define _ASM_GT64120_H | 22 | #define _ASM_GT64120_H |
23 | 23 | ||
24 | #include <linux/clocksource.h> | ||
25 | |||
26 | #include <asm/addrspace.h> | 24 | #include <asm/addrspace.h> |
27 | #include <asm/byteorder.h> | 25 | #include <asm/byteorder.h> |
28 | 26 | ||
diff --git a/arch/mips/include/asm/hw_irq.h b/arch/mips/include/asm/hw_irq.h index 77adda297ad9..9e8ef5994c9c 100644 --- a/arch/mips/include/asm/hw_irq.h +++ b/arch/mips/include/asm/hw_irq.h | |||
@@ -8,7 +8,7 @@ | |||
8 | #ifndef __ASM_HW_IRQ_H | 8 | #ifndef __ASM_HW_IRQ_H |
9 | #define __ASM_HW_IRQ_H | 9 | #define __ASM_HW_IRQ_H |
10 | 10 | ||
11 | #include <asm/atomic.h> | 11 | #include <linux/atomic.h> |
12 | 12 | ||
13 | extern atomic_t irq_err_count; | 13 | extern atomic_t irq_err_count; |
14 | 14 | ||
diff --git a/arch/mips/include/asm/irq.h b/arch/mips/include/asm/irq.h index 0ec01294b063..2354c870a63a 100644 --- a/arch/mips/include/asm/irq.h +++ b/arch/mips/include/asm/irq.h | |||
@@ -18,7 +18,6 @@ | |||
18 | 18 | ||
19 | static inline void irq_dispose_mapping(unsigned int virq) | 19 | static inline void irq_dispose_mapping(unsigned int virq) |
20 | { | 20 | { |
21 | return; | ||
22 | } | 21 | } |
23 | 22 | ||
24 | #ifdef CONFIG_I8259 | 23 | #ifdef CONFIG_I8259 |
diff --git a/arch/mips/include/asm/local.h b/arch/mips/include/asm/local.h index fffc8307a80a..94fde8d0fac1 100644 --- a/arch/mips/include/asm/local.h +++ b/arch/mips/include/asm/local.h | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | #include <linux/percpu.h> | 4 | #include <linux/percpu.h> |
5 | #include <linux/bitops.h> | 5 | #include <linux/bitops.h> |
6 | #include <asm/atomic.h> | 6 | #include <linux/atomic.h> |
7 | #include <asm/cmpxchg.h> | 7 | #include <asm/cmpxchg.h> |
8 | #include <asm/war.h> | 8 | #include <asm/war.h> |
9 | 9 | ||
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h index 85fd27509aac..0ed5230243c9 100644 --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | |||
@@ -89,7 +89,6 @@ | |||
89 | 89 | ||
90 | /* Interrupt Mask register */ | 90 | /* Interrupt Mask register */ |
91 | #define PERF_IRQMASK_REG 0xc | 91 | #define PERF_IRQMASK_REG 0xc |
92 | #define PERF_IRQSTAT_REG 0x10 | ||
93 | 92 | ||
94 | /* Interrupt Status register */ | 93 | /* Interrupt Status register */ |
95 | #define PERF_IRQSTAT_REG 0x10 | 94 | #define PERF_IRQSTAT_REG 0x10 |
diff --git a/arch/mips/include/asm/mach-bcm63xx/spaces.h b/arch/mips/include/asm/mach-bcm63xx/spaces.h new file mode 100644 index 000000000000..61e750fb4653 --- /dev/null +++ b/arch/mips/include/asm/mach-bcm63xx/spaces.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
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) 1994 - 1999, 2000, 03, 04 Ralf Baechle | ||
7 | * Copyright (C) 2000, 2002 Maciej W. Rozycki | ||
8 | * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc. | ||
9 | */ | ||
10 | #ifndef _ASM_BCM63XX_SPACES_H | ||
11 | #define _ASM_BCM63XX_SPACES_H | ||
12 | |||
13 | #define FIXADDR_TOP ((unsigned long)(long)(int)0xff000000) | ||
14 | |||
15 | #include <asm/mach-generic/spaces.h> | ||
16 | |||
17 | #endif /* __ASM_BCM63XX_SPACES_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/dma-coherence.h b/arch/mips/include/asm/mach-generic/dma-coherence.h index 8da98073e952..9c95177f7a7e 100644 --- a/arch/mips/include/asm/mach-generic/dma-coherence.h +++ b/arch/mips/include/asm/mach-generic/dma-coherence.h | |||
@@ -49,7 +49,6 @@ static inline int plat_dma_supported(struct device *dev, u64 mask) | |||
49 | 49 | ||
50 | static inline void plat_extra_sync_for_device(struct device *dev) | 50 | static inline void plat_extra_sync_for_device(struct device *dev) |
51 | { | 51 | { |
52 | return; | ||
53 | } | 52 | } |
54 | 53 | ||
55 | static inline int plat_dma_mapping_error(struct device *dev, | 54 | static inline int plat_dma_mapping_error(struct device *dev, |
diff --git a/arch/mips/include/asm/mach-generic/spaces.h b/arch/mips/include/asm/mach-generic/spaces.h index c9fa4b14968d..d7a9efd3a5ce 100644 --- a/arch/mips/include/asm/mach-generic/spaces.h +++ b/arch/mips/include/asm/mach-generic/spaces.h | |||
@@ -82,4 +82,8 @@ | |||
82 | #define PAGE_OFFSET (CAC_BASE + PHYS_OFFSET) | 82 | #define PAGE_OFFSET (CAC_BASE + PHYS_OFFSET) |
83 | #endif | 83 | #endif |
84 | 84 | ||
85 | #ifndef FIXADDR_TOP | ||
86 | #define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000) | ||
87 | #endif | ||
88 | |||
85 | #endif /* __ASM_MACH_GENERIC_SPACES_H */ | 89 | #endif /* __ASM_MACH_GENERIC_SPACES_H */ |
diff --git a/arch/mips/include/asm/mach-ip27/dma-coherence.h b/arch/mips/include/asm/mach-ip27/dma-coherence.h index 016d0989b141..06c441968e6e 100644 --- a/arch/mips/include/asm/mach-ip27/dma-coherence.h +++ b/arch/mips/include/asm/mach-ip27/dma-coherence.h | |||
@@ -60,7 +60,6 @@ static inline int plat_dma_supported(struct device *dev, u64 mask) | |||
60 | 60 | ||
61 | static inline void plat_extra_sync_for_device(struct device *dev) | 61 | static inline void plat_extra_sync_for_device(struct device *dev) |
62 | { | 62 | { |
63 | return; | ||
64 | } | 63 | } |
65 | 64 | ||
66 | static inline int plat_dma_mapping_error(struct device *dev, | 65 | static inline int plat_dma_mapping_error(struct device *dev, |
diff --git a/arch/mips/include/asm/mach-jazz/dma-coherence.h b/arch/mips/include/asm/mach-jazz/dma-coherence.h index 302101b54acb..9fc1e9ad7038 100644 --- a/arch/mips/include/asm/mach-jazz/dma-coherence.h +++ b/arch/mips/include/asm/mach-jazz/dma-coherence.h | |||
@@ -50,7 +50,6 @@ static inline int plat_dma_supported(struct device *dev, u64 mask) | |||
50 | 50 | ||
51 | static inline void plat_extra_sync_for_device(struct device *dev) | 51 | static inline void plat_extra_sync_for_device(struct device *dev) |
52 | { | 52 | { |
53 | return; | ||
54 | } | 53 | } |
55 | 54 | ||
56 | static inline int plat_dma_mapping_error(struct device *dev, | 55 | static inline int plat_dma_mapping_error(struct device *dev, |
diff --git a/arch/mips/include/asm/mach-loongson/dma-coherence.h b/arch/mips/include/asm/mach-loongson/dma-coherence.h index 981c75f91a7d..e1433055fe98 100644 --- a/arch/mips/include/asm/mach-loongson/dma-coherence.h +++ b/arch/mips/include/asm/mach-loongson/dma-coherence.h | |||
@@ -55,7 +55,6 @@ static inline int plat_dma_supported(struct device *dev, u64 mask) | |||
55 | 55 | ||
56 | static inline void plat_extra_sync_for_device(struct device *dev) | 56 | static inline void plat_extra_sync_for_device(struct device *dev) |
57 | { | 57 | { |
58 | return; | ||
59 | } | 58 | } |
60 | 59 | ||
61 | static inline int plat_dma_mapping_error(struct device *dev, | 60 | static inline int plat_dma_mapping_error(struct device *dev, |
diff --git a/arch/mips/include/asm/mach-malta/cpu-feature-overrides.h b/arch/mips/include/asm/mach-malta/cpu-feature-overrides.h index 2848cea42bce..37e3583a9fdd 100644 --- a/arch/mips/include/asm/mach-malta/cpu-feature-overrides.h +++ b/arch/mips/include/asm/mach-malta/cpu-feature-overrides.h | |||
@@ -32,6 +32,7 @@ | |||
32 | /* #define cpu_has_vtag_icache ? */ | 32 | /* #define cpu_has_vtag_icache ? */ |
33 | /* #define cpu_has_dc_aliases ? */ | 33 | /* #define cpu_has_dc_aliases ? */ |
34 | /* #define cpu_has_ic_fills_f_dc ? */ | 34 | /* #define cpu_has_ic_fills_f_dc ? */ |
35 | #define cpu_has_clo_clz 1 | ||
35 | #define cpu_has_nofpuex 0 | 36 | #define cpu_has_nofpuex 0 |
36 | /* #define cpu_has_64bits ? */ | 37 | /* #define cpu_has_64bits ? */ |
37 | /* #define cpu_has_64bit_zero_reg ? */ | 38 | /* #define cpu_has_64bit_zero_reg ? */ |
@@ -58,6 +59,7 @@ | |||
58 | /* #define cpu_has_vtag_icache ? */ | 59 | /* #define cpu_has_vtag_icache ? */ |
59 | /* #define cpu_has_dc_aliases ? */ | 60 | /* #define cpu_has_dc_aliases ? */ |
60 | /* #define cpu_has_ic_fills_f_dc ? */ | 61 | /* #define cpu_has_ic_fills_f_dc ? */ |
62 | #define cpu_has_clo_clz 1 | ||
61 | #define cpu_has_nofpuex 0 | 63 | #define cpu_has_nofpuex 0 |
62 | /* #define cpu_has_64bits ? */ | 64 | /* #define cpu_has_64bits ? */ |
63 | /* #define cpu_has_64bit_zero_reg ? */ | 65 | /* #define cpu_has_64bit_zero_reg ? */ |
diff --git a/arch/mips/include/asm/mach-mipssim/cpu-feature-overrides.h b/arch/mips/include/asm/mach-mipssim/cpu-feature-overrides.h index 779b02205737..27aaaa5d925e 100644 --- a/arch/mips/include/asm/mach-mipssim/cpu-feature-overrides.h +++ b/arch/mips/include/asm/mach-mipssim/cpu-feature-overrides.h | |||
@@ -31,6 +31,7 @@ | |||
31 | /* #define cpu_has_vtag_icache ? */ | 31 | /* #define cpu_has_vtag_icache ? */ |
32 | /* #define cpu_has_dc_aliases ? */ | 32 | /* #define cpu_has_dc_aliases ? */ |
33 | /* #define cpu_has_ic_fills_f_dc ? */ | 33 | /* #define cpu_has_ic_fills_f_dc ? */ |
34 | #define cpu_has_clo_clz 1 | ||
34 | #define cpu_has_nofpuex 0 | 35 | #define cpu_has_nofpuex 0 |
35 | /* #define cpu_has_64bits ? */ | 36 | /* #define cpu_has_64bits ? */ |
36 | /* #define cpu_has_64bit_zero_reg ? */ | 37 | /* #define cpu_has_64bit_zero_reg ? */ |
@@ -56,6 +57,7 @@ | |||
56 | /* #define cpu_has_vtag_icache ? */ | 57 | /* #define cpu_has_vtag_icache ? */ |
57 | /* #define cpu_has_dc_aliases ? */ | 58 | /* #define cpu_has_dc_aliases ? */ |
58 | /* #define cpu_has_ic_fills_f_dc ? */ | 59 | /* #define cpu_has_ic_fills_f_dc ? */ |
60 | #define cpu_has_clo_clz 1 | ||
59 | #define cpu_has_nofpuex 0 | 61 | #define cpu_has_nofpuex 0 |
60 | /* #define cpu_has_64bits ? */ | 62 | /* #define cpu_has_64bits ? */ |
61 | /* #define cpu_has_64bit_zero_reg ? */ | 63 | /* #define cpu_has_64bit_zero_reg ? */ |
diff --git a/arch/mips/include/asm/mach-powertv/cpu-feature-overrides.h b/arch/mips/include/asm/mach-powertv/cpu-feature-overrides.h new file mode 100644 index 000000000000..f751e3ec56fb --- /dev/null +++ b/arch/mips/include/asm/mach-powertv/cpu-feature-overrides.h | |||
@@ -0,0 +1,59 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Cisco Systems, Inc. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
17 | */ | ||
18 | |||
19 | #ifndef _ASM_MACH_POWERTV_CPU_FEATURE_OVERRIDES_H_ | ||
20 | #define _ASM_MACH_POWERTV_CPU_FEATURE_OVERRIDES_H_ | ||
21 | #define cpu_has_tlb 1 | ||
22 | #define cpu_has_4kex 1 | ||
23 | #define cpu_has_3k_cache 0 | ||
24 | #define cpu_has_4k_cache 1 | ||
25 | #define cpu_has_tx39_cache 0 | ||
26 | #define cpu_has_fpu 0 | ||
27 | #define cpu_has_counter 1 | ||
28 | #define cpu_has_watch 1 | ||
29 | #define cpu_has_divec 1 | ||
30 | #define cpu_has_vce 0 | ||
31 | #define cpu_has_cache_cdex_p 0 | ||
32 | #define cpu_has_cache_cdex_s 0 | ||
33 | #define cpu_has_mcheck 1 | ||
34 | #define cpu_has_ejtag 1 | ||
35 | #define cpu_has_llsc 1 | ||
36 | #define cpu_has_mips16 0 | ||
37 | #define cpu_has_mdmx 0 | ||
38 | #define cpu_has_mips3d 0 | ||
39 | #define cpu_has_smartmips 0 | ||
40 | #define cpu_has_vtag_icache 0 | ||
41 | #define cpu_has_dc_aliases 0 | ||
42 | #define cpu_has_ic_fills_f_dc 0 | ||
43 | #define cpu_has_mips32r1 0 | ||
44 | #define cpu_has_mips32r2 1 | ||
45 | #define cpu_has_mips64r1 0 | ||
46 | #define cpu_has_mips64r2 0 | ||
47 | #define cpu_has_dsp 0 | ||
48 | #define cpu_has_mipsmt 0 | ||
49 | #define cpu_has_userlocal 0 | ||
50 | #define cpu_has_nofpuex 0 | ||
51 | #define cpu_has_64bits 0 | ||
52 | #define cpu_has_64bit_zero_reg 0 | ||
53 | #define cpu_has_vint 1 | ||
54 | #define cpu_has_veic 1 | ||
55 | #define cpu_has_inclusive_pcaches 0 | ||
56 | |||
57 | #define cpu_dcache_line_size() 32 | ||
58 | #define cpu_icache_line_size() 32 | ||
59 | #endif | ||
diff --git a/arch/mips/include/asm/mach-powertv/dma-coherence.h b/arch/mips/include/asm/mach-powertv/dma-coherence.h index a8e72cf12142..62c094085947 100644 --- a/arch/mips/include/asm/mach-powertv/dma-coherence.h +++ b/arch/mips/include/asm/mach-powertv/dma-coherence.h | |||
@@ -102,7 +102,6 @@ static inline int plat_dma_supported(struct device *dev, u64 mask) | |||
102 | 102 | ||
103 | static inline void plat_extra_sync_for_device(struct device *dev) | 103 | static inline void plat_extra_sync_for_device(struct device *dev) |
104 | { | 104 | { |
105 | return; | ||
106 | } | 105 | } |
107 | 106 | ||
108 | static inline int plat_dma_mapping_error(struct device *dev, | 107 | static inline int plat_dma_mapping_error(struct device *dev, |
diff --git a/arch/mips/include/asm/mach-tx39xx/spaces.h b/arch/mips/include/asm/mach-tx39xx/spaces.h new file mode 100644 index 000000000000..151fe7a1cf1d --- /dev/null +++ b/arch/mips/include/asm/mach-tx39xx/spaces.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
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) 1994 - 1999, 2000, 03, 04 Ralf Baechle | ||
7 | * Copyright (C) 2000, 2002 Maciej W. Rozycki | ||
8 | * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc. | ||
9 | */ | ||
10 | #ifndef _ASM_TX39XX_SPACES_H | ||
11 | #define _ASM_TX39XX_SPACES_H | ||
12 | |||
13 | #define FIXADDR_TOP ((unsigned long)(long)(int)0xfefe0000) | ||
14 | |||
15 | #include <asm/mach-generic/spaces.h> | ||
16 | |||
17 | #endif /* __ASM_TX39XX_SPACES_H */ | ||
diff --git a/arch/mips/include/asm/mach-tx49xx/spaces.h b/arch/mips/include/asm/mach-tx49xx/spaces.h new file mode 100644 index 000000000000..0cb10a6f489e --- /dev/null +++ b/arch/mips/include/asm/mach-tx49xx/spaces.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
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) 1994 - 1999, 2000, 03, 04 Ralf Baechle | ||
7 | * Copyright (C) 2000, 2002 Maciej W. Rozycki | ||
8 | * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc. | ||
9 | */ | ||
10 | #ifndef _ASM_TX49XX_SPACES_H | ||
11 | #define _ASM_TX49XX_SPACES_H | ||
12 | |||
13 | #define FIXADDR_TOP ((unsigned long)(long)(int)0xfefe0000) | ||
14 | |||
15 | #include <asm/mach-generic/spaces.h> | ||
16 | |||
17 | #endif /* __ASM_TX49XX_SPACES_H */ | ||
diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h index 7e40f3778179..b2202a68cf0f 100644 --- a/arch/mips/include/asm/pgtable.h +++ b/arch/mips/include/asm/pgtable.h | |||
@@ -414,6 +414,7 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn, | |||
414 | * constraints placed on us by the cache architecture. | 414 | * constraints placed on us by the cache architecture. |
415 | */ | 415 | */ |
416 | #define HAVE_ARCH_UNMAPPED_AREA | 416 | #define HAVE_ARCH_UNMAPPED_AREA |
417 | #define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN | ||
417 | 418 | ||
418 | /* | 419 | /* |
419 | * No page table caches to initialise | 420 | * No page table caches to initialise |
diff --git a/arch/mips/include/asm/smp-ops.h b/arch/mips/include/asm/smp-ops.h index 9e09af34c8a8..ef2a8041e78b 100644 --- a/arch/mips/include/asm/smp-ops.h +++ b/arch/mips/include/asm/smp-ops.h | |||
@@ -11,6 +11,8 @@ | |||
11 | #ifndef __ASM_SMP_OPS_H | 11 | #ifndef __ASM_SMP_OPS_H |
12 | #define __ASM_SMP_OPS_H | 12 | #define __ASM_SMP_OPS_H |
13 | 13 | ||
14 | #include <linux/errno.h> | ||
15 | |||
14 | #ifdef CONFIG_SMP | 16 | #ifdef CONFIG_SMP |
15 | 17 | ||
16 | #include <linux/cpumask.h> | 18 | #include <linux/cpumask.h> |
@@ -56,8 +58,43 @@ static inline void register_smp_ops(struct plat_smp_ops *ops) | |||
56 | 58 | ||
57 | #endif /* !CONFIG_SMP */ | 59 | #endif /* !CONFIG_SMP */ |
58 | 60 | ||
59 | extern struct plat_smp_ops up_smp_ops; | 61 | static inline int register_up_smp_ops(void) |
60 | extern struct plat_smp_ops cmp_smp_ops; | 62 | { |
61 | extern struct plat_smp_ops vsmp_smp_ops; | 63 | #ifdef CONFIG_SMP_UP |
64 | extern struct plat_smp_ops up_smp_ops; | ||
65 | |||
66 | register_smp_ops(&up_smp_ops); | ||
67 | |||
68 | return 0; | ||
69 | #else | ||
70 | return -ENODEV; | ||
71 | #endif | ||
72 | } | ||
73 | |||
74 | static inline int register_cmp_smp_ops(void) | ||
75 | { | ||
76 | #ifdef CONFIG_MIPS_CMP | ||
77 | extern struct plat_smp_ops cmp_smp_ops; | ||
78 | |||
79 | register_smp_ops(&cmp_smp_ops); | ||
80 | |||
81 | return 0; | ||
82 | #else | ||
83 | return -ENODEV; | ||
84 | #endif | ||
85 | } | ||
86 | |||
87 | static inline int register_vsmp_smp_ops(void) | ||
88 | { | ||
89 | #ifdef CONFIG_MIPS_MT_SMP | ||
90 | extern struct plat_smp_ops vsmp_smp_ops; | ||
91 | |||
92 | register_smp_ops(&vsmp_smp_ops); | ||
93 | |||
94 | return 0; | ||
95 | #else | ||
96 | return -ENODEV; | ||
97 | #endif | ||
98 | } | ||
62 | 99 | ||
63 | #endif /* __ASM_SMP_OPS_H */ | 100 | #endif /* __ASM_SMP_OPS_H */ |
diff --git a/arch/mips/include/asm/smp.h b/arch/mips/include/asm/smp.h index af42385245d5..d4fb4d852a6d 100644 --- a/arch/mips/include/asm/smp.h +++ b/arch/mips/include/asm/smp.h | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/threads.h> | 17 | #include <linux/threads.h> |
18 | #include <linux/cpumask.h> | 18 | #include <linux/cpumask.h> |
19 | 19 | ||
20 | #include <asm/atomic.h> | 20 | #include <linux/atomic.h> |
21 | #include <asm/smp-ops.h> | 21 | #include <asm/smp-ops.h> |
22 | 22 | ||
23 | extern int smp_num_siblings; | 23 | extern int smp_num_siblings; |
diff --git a/arch/mips/include/asm/smtc.h b/arch/mips/include/asm/smtc.h index ea60bf08dcb0..c9736fc06325 100644 --- a/arch/mips/include/asm/smtc.h +++ b/arch/mips/include/asm/smtc.h | |||
@@ -46,6 +46,7 @@ extern void smtc_prepare_cpus(int cpus); | |||
46 | extern void smtc_smp_finish(void); | 46 | extern void smtc_smp_finish(void); |
47 | extern void smtc_boot_secondary(int cpu, struct task_struct *t); | 47 | extern void smtc_boot_secondary(int cpu, struct task_struct *t); |
48 | extern void smtc_cpus_done(void); | 48 | extern void smtc_cpus_done(void); |
49 | extern void smtc_init_secondary(void); | ||
49 | 50 | ||
50 | 51 | ||
51 | /* | 52 | /* |
diff --git a/arch/mips/include/asm/uasm.h b/arch/mips/include/asm/uasm.h index dcbd4bb417ec..504d40aedfae 100644 --- a/arch/mips/include/asm/uasm.h +++ b/arch/mips/include/asm/uasm.h | |||
@@ -150,6 +150,7 @@ static inline void __uasminit uasm_l##lb(struct uasm_label **lab, u32 *addr) \ | |||
150 | # define UASM_i_SLL(buf, rs, rt, sh) uasm_i_dsll(buf, rs, rt, sh) | 150 | # define UASM_i_SLL(buf, rs, rt, sh) uasm_i_dsll(buf, rs, rt, sh) |
151 | # define UASM_i_SRA(buf, rs, rt, sh) uasm_i_dsra(buf, rs, rt, sh) | 151 | # define UASM_i_SRA(buf, rs, rt, sh) uasm_i_dsra(buf, rs, rt, sh) |
152 | # define UASM_i_SRL(buf, rs, rt, sh) uasm_i_dsrl(buf, rs, rt, sh) | 152 | # define UASM_i_SRL(buf, rs, rt, sh) uasm_i_dsrl(buf, rs, rt, sh) |
153 | # define UASM_i_SRL_SAFE(buf, rs, rt, sh) uasm_i_dsrl_safe(buf, rs, rt, sh) | ||
153 | # define UASM_i_ROTR(buf, rs, rt, sh) uasm_i_drotr(buf, rs, rt, sh) | 154 | # define UASM_i_ROTR(buf, rs, rt, sh) uasm_i_drotr(buf, rs, rt, sh) |
154 | # define UASM_i_MFC0(buf, rt, rd...) uasm_i_dmfc0(buf, rt, rd) | 155 | # define UASM_i_MFC0(buf, rt, rd...) uasm_i_dmfc0(buf, rt, rd) |
155 | # define UASM_i_MTC0(buf, rt, rd...) uasm_i_dmtc0(buf, rt, rd) | 156 | # define UASM_i_MTC0(buf, rt, rd...) uasm_i_dmtc0(buf, rt, rd) |
@@ -165,6 +166,7 @@ static inline void __uasminit uasm_l##lb(struct uasm_label **lab, u32 *addr) \ | |||
165 | # define UASM_i_SLL(buf, rs, rt, sh) uasm_i_sll(buf, rs, rt, sh) | 166 | # define UASM_i_SLL(buf, rs, rt, sh) uasm_i_sll(buf, rs, rt, sh) |
166 | # define UASM_i_SRA(buf, rs, rt, sh) uasm_i_sra(buf, rs, rt, sh) | 167 | # define UASM_i_SRA(buf, rs, rt, sh) uasm_i_sra(buf, rs, rt, sh) |
167 | # define UASM_i_SRL(buf, rs, rt, sh) uasm_i_srl(buf, rs, rt, sh) | 168 | # define UASM_i_SRL(buf, rs, rt, sh) uasm_i_srl(buf, rs, rt, sh) |
169 | # define UASM_i_SRL_SAFE(buf, rs, rt, sh) uasm_i_srl(buf, rs, rt, sh) | ||
168 | # define UASM_i_ROTR(buf, rs, rt, sh) uasm_i_rotr(buf, rs, rt, sh) | 170 | # define UASM_i_ROTR(buf, rs, rt, sh) uasm_i_rotr(buf, rs, rt, sh) |
169 | # define UASM_i_MFC0(buf, rt, rd...) uasm_i_mfc0(buf, rt, rd) | 171 | # define UASM_i_MFC0(buf, rt, rd...) uasm_i_mfc0(buf, rt, rd) |
170 | # define UASM_i_MTC0(buf, rt, rd...) uasm_i_mtc0(buf, rt, rd) | 172 | # define UASM_i_MTC0(buf, rt, rd...) uasm_i_mtc0(buf, rt, rd) |
diff --git a/arch/mips/include/asm/unistd.h b/arch/mips/include/asm/unistd.h index 6fcfc480e9d0..ecea7871dec2 100644 --- a/arch/mips/include/asm/unistd.h +++ b/arch/mips/include/asm/unistd.h | |||
@@ -363,17 +363,18 @@ | |||
363 | #define __NR_open_by_handle_at (__NR_Linux + 340) | 363 | #define __NR_open_by_handle_at (__NR_Linux + 340) |
364 | #define __NR_clock_adjtime (__NR_Linux + 341) | 364 | #define __NR_clock_adjtime (__NR_Linux + 341) |
365 | #define __NR_syncfs (__NR_Linux + 342) | 365 | #define __NR_syncfs (__NR_Linux + 342) |
366 | #define __NR_setns (__NR_Linux + 343) | 366 | #define __NR_sendmmsg (__NR_Linux + 343) |
367 | #define __NR_setns (__NR_Linux + 344) | ||
367 | 368 | ||
368 | /* | 369 | /* |
369 | * Offset of the last Linux o32 flavoured syscall | 370 | * Offset of the last Linux o32 flavoured syscall |
370 | */ | 371 | */ |
371 | #define __NR_Linux_syscalls 343 | 372 | #define __NR_Linux_syscalls 344 |
372 | 373 | ||
373 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ | 374 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ |
374 | 375 | ||
375 | #define __NR_O32_Linux 4000 | 376 | #define __NR_O32_Linux 4000 |
376 | #define __NR_O32_Linux_syscalls 343 | 377 | #define __NR_O32_Linux_syscalls 344 |
377 | 378 | ||
378 | #if _MIPS_SIM == _MIPS_SIM_ABI64 | 379 | #if _MIPS_SIM == _MIPS_SIM_ABI64 |
379 | 380 | ||
@@ -683,17 +684,18 @@ | |||
683 | #define __NR_open_by_handle_at (__NR_Linux + 299) | 684 | #define __NR_open_by_handle_at (__NR_Linux + 299) |
684 | #define __NR_clock_adjtime (__NR_Linux + 300) | 685 | #define __NR_clock_adjtime (__NR_Linux + 300) |
685 | #define __NR_syncfs (__NR_Linux + 301) | 686 | #define __NR_syncfs (__NR_Linux + 301) |
686 | #define __NR_setns (__NR_Linux + 302) | 687 | #define __NR_sendmmsg (__NR_Linux + 302) |
688 | #define __NR_setns (__NR_Linux + 303) | ||
687 | 689 | ||
688 | /* | 690 | /* |
689 | * Offset of the last Linux 64-bit flavoured syscall | 691 | * Offset of the last Linux 64-bit flavoured syscall |
690 | */ | 692 | */ |
691 | #define __NR_Linux_syscalls 302 | 693 | #define __NR_Linux_syscalls 303 |
692 | 694 | ||
693 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ | 695 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ |
694 | 696 | ||
695 | #define __NR_64_Linux 5000 | 697 | #define __NR_64_Linux 5000 |
696 | #define __NR_64_Linux_syscalls 302 | 698 | #define __NR_64_Linux_syscalls 303 |
697 | 699 | ||
698 | #if _MIPS_SIM == _MIPS_SIM_NABI32 | 700 | #if _MIPS_SIM == _MIPS_SIM_NABI32 |
699 | 701 | ||
@@ -1008,17 +1010,18 @@ | |||
1008 | #define __NR_open_by_handle_at (__NR_Linux + 304) | 1010 | #define __NR_open_by_handle_at (__NR_Linux + 304) |
1009 | #define __NR_clock_adjtime (__NR_Linux + 305) | 1011 | #define __NR_clock_adjtime (__NR_Linux + 305) |
1010 | #define __NR_syncfs (__NR_Linux + 306) | 1012 | #define __NR_syncfs (__NR_Linux + 306) |
1011 | #define __NR_setns (__NR_Linux + 307) | 1013 | #define __NR_sendmmsg (__NR_Linux + 307) |
1014 | #define __NR_setns (__NR_Linux + 308) | ||
1012 | 1015 | ||
1013 | /* | 1016 | /* |
1014 | * Offset of the last N32 flavoured syscall | 1017 | * Offset of the last N32 flavoured syscall |
1015 | */ | 1018 | */ |
1016 | #define __NR_Linux_syscalls 307 | 1019 | #define __NR_Linux_syscalls 308 |
1017 | 1020 | ||
1018 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ | 1021 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ |
1019 | 1022 | ||
1020 | #define __NR_N32_Linux 6000 | 1023 | #define __NR_N32_Linux 6000 |
1021 | #define __NR_N32_Linux_syscalls 307 | 1024 | #define __NR_N32_Linux_syscalls 308 |
1022 | 1025 | ||
1023 | #ifdef __KERNEL__ | 1026 | #ifdef __KERNEL__ |
1024 | 1027 | ||