diff options
Diffstat (limited to 'include/asm-mips')
-rw-r--r-- | include/asm-mips/asm.h | 2 | ||||
-rw-r--r-- | include/asm-mips/cacheflush.h | 19 | ||||
-rw-r--r-- | include/asm-mips/div64.h | 21 | ||||
-rw-r--r-- | include/asm-mips/fixmap.h | 14 | ||||
-rw-r--r-- | include/asm-mips/io.h | 30 | ||||
-rw-r--r-- | include/asm-mips/irq.h | 6 | ||||
-rw-r--r-- | include/asm-mips/mipsmtregs.h | 2 | ||||
-rw-r--r-- | include/asm-mips/pgalloc.h | 2 | ||||
-rw-r--r-- | include/asm-mips/pgtable-64.h | 2 | ||||
-rw-r--r-- | include/asm-mips/sibyte/sb1250.h | 2 | ||||
-rw-r--r-- | include/asm-mips/stackframe.h | 64 | ||||
-rw-r--r-- | include/asm-mips/system.h | 2 | ||||
-rw-r--r-- | include/asm-mips/termbits.h | 12 | ||||
-rw-r--r-- | include/asm-mips/time.h | 10 | ||||
-rw-r--r-- | include/asm-mips/unistd.h | 22 | ||||
-rw-r--r-- | include/asm-mips/vr41xx/vr41xx.h | 2 |
16 files changed, 70 insertions, 142 deletions
diff --git a/include/asm-mips/asm.h b/include/asm-mips/asm.h index e3038a4599ee..838eb3144d81 100644 --- a/include/asm-mips/asm.h +++ b/include/asm-mips/asm.h | |||
@@ -344,6 +344,7 @@ symbol = value | |||
344 | #define PTR_L lw | 344 | #define PTR_L lw |
345 | #define PTR_S sw | 345 | #define PTR_S sw |
346 | #define PTR_LA la | 346 | #define PTR_LA la |
347 | #define PTR_LI li | ||
347 | #define PTR_SLL sll | 348 | #define PTR_SLL sll |
348 | #define PTR_SLLV sllv | 349 | #define PTR_SLLV sllv |
349 | #define PTR_SRL srl | 350 | #define PTR_SRL srl |
@@ -368,6 +369,7 @@ symbol = value | |||
368 | #define PTR_L ld | 369 | #define PTR_L ld |
369 | #define PTR_S sd | 370 | #define PTR_S sd |
370 | #define PTR_LA dla | 371 | #define PTR_LA dla |
372 | #define PTR_LI dli | ||
371 | #define PTR_SLL dsll | 373 | #define PTR_SLL dsll |
372 | #define PTR_SLLV dsllv | 374 | #define PTR_SLLV dsllv |
373 | #define PTR_SRL dsrl | 375 | #define PTR_SRL dsrl |
diff --git a/include/asm-mips/cacheflush.h b/include/asm-mips/cacheflush.h index 9ab59e2bb233..e3c9925876a3 100644 --- a/include/asm-mips/cacheflush.h +++ b/include/asm-mips/cacheflush.h | |||
@@ -55,24 +55,13 @@ extern void (*flush_icache_range)(unsigned long start, unsigned long end); | |||
55 | #define flush_cache_vmap(start, end) flush_cache_all() | 55 | #define flush_cache_vmap(start, end) flush_cache_all() |
56 | #define flush_cache_vunmap(start, end) flush_cache_all() | 56 | #define flush_cache_vunmap(start, end) flush_cache_all() |
57 | 57 | ||
58 | static inline void copy_to_user_page(struct vm_area_struct *vma, | 58 | extern void copy_to_user_page(struct vm_area_struct *vma, |
59 | struct page *page, unsigned long vaddr, void *dst, const void *src, | 59 | struct page *page, unsigned long vaddr, void *dst, const void *src, |
60 | unsigned long len) | 60 | unsigned long len); |
61 | { | ||
62 | if (cpu_has_dc_aliases) | ||
63 | flush_cache_page(vma, vaddr, page_to_pfn(page)); | ||
64 | memcpy(dst, src, len); | ||
65 | __flush_icache_page(vma, page); | ||
66 | } | ||
67 | 61 | ||
68 | static inline void copy_from_user_page(struct vm_area_struct *vma, | 62 | extern void copy_from_user_page(struct vm_area_struct *vma, |
69 | struct page *page, unsigned long vaddr, void *dst, const void *src, | 63 | struct page *page, unsigned long vaddr, void *dst, const void *src, |
70 | unsigned long len) | 64 | unsigned long len); |
71 | { | ||
72 | if (cpu_has_dc_aliases) | ||
73 | flush_cache_page(vma, vaddr, page_to_pfn(page)); | ||
74 | memcpy(dst, src, len); | ||
75 | } | ||
76 | 65 | ||
77 | extern void (*flush_cache_sigtramp)(unsigned long addr); | 66 | extern void (*flush_cache_sigtramp)(unsigned long addr); |
78 | extern void (*flush_icache_all)(void); | 67 | extern void (*flush_icache_all)(void); |
diff --git a/include/asm-mips/div64.h b/include/asm-mips/div64.h index 5f7dcf5452e7..d107832de1b6 100644 --- a/include/asm-mips/div64.h +++ b/include/asm-mips/div64.h | |||
@@ -83,27 +83,6 @@ | |||
83 | #if (_MIPS_SZLONG == 64) | 83 | #if (_MIPS_SZLONG == 64) |
84 | 84 | ||
85 | /* | 85 | /* |
86 | * Don't use this one in new code | ||
87 | */ | ||
88 | #define do_div64_32(res, high, low, base) ({ \ | ||
89 | unsigned int __quot, __mod; \ | ||
90 | unsigned long __div; \ | ||
91 | unsigned int __low, __high, __base; \ | ||
92 | \ | ||
93 | __high = (high); \ | ||
94 | __low = (low); \ | ||
95 | __div = __high; \ | ||
96 | __div = __div << 32 | __low; \ | ||
97 | __base = (base); \ | ||
98 | \ | ||
99 | __mod = __div % __base; \ | ||
100 | __div = __div / __base; \ | ||
101 | \ | ||
102 | __quot = __div; \ | ||
103 | (res) = __quot; \ | ||
104 | __mod; }) | ||
105 | |||
106 | /* | ||
107 | * Hey, we're already 64-bit, no | 86 | * Hey, we're already 64-bit, no |
108 | * need to play games.. | 87 | * need to play games.. |
109 | */ | 88 | */ |
diff --git a/include/asm-mips/fixmap.h b/include/asm-mips/fixmap.h index 6959bdb59310..02c8a13fc894 100644 --- a/include/asm-mips/fixmap.h +++ b/include/asm-mips/fixmap.h | |||
@@ -45,8 +45,16 @@ | |||
45 | * fix-mapped? | 45 | * fix-mapped? |
46 | */ | 46 | */ |
47 | enum fixed_addresses { | 47 | enum fixed_addresses { |
48 | #define FIX_N_COLOURS 8 | ||
49 | FIX_CMAP_BEGIN, | ||
50 | #ifdef CONFIG_MIPS_MT_SMTC | ||
51 | FIX_CMAP_END = FIX_CMAP_BEGIN + (FIX_N_COLOURS * NR_CPUS), | ||
52 | #else | ||
53 | FIX_CMAP_END = FIX_CMAP_BEGIN + FIX_N_COLOURS, | ||
54 | #endif | ||
48 | #ifdef CONFIG_HIGHMEM | 55 | #ifdef CONFIG_HIGHMEM |
49 | FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */ | 56 | /* reserved pte's for temporary kernel mappings */ |
57 | FIX_KMAP_BEGIN = FIX_CMAP_END + 1, | ||
50 | FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1, | 58 | FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1, |
51 | #endif | 59 | #endif |
52 | __end_of_fixed_addresses | 60 | __end_of_fixed_addresses |
@@ -70,9 +78,9 @@ extern void __set_fixmap (enum fixed_addresses idx, | |||
70 | * at the top of mem.. | 78 | * at the top of mem.. |
71 | */ | 79 | */ |
72 | #if defined(CONFIG_CPU_TX39XX) || defined(CONFIG_CPU_TX49XX) | 80 | #if defined(CONFIG_CPU_TX39XX) || defined(CONFIG_CPU_TX49XX) |
73 | #define FIXADDR_TOP (0xff000000UL - 0x2000) | 81 | #define FIXADDR_TOP ((unsigned long)(long)(int)(0xff000000 - 0x20000)) |
74 | #else | 82 | #else |
75 | #define FIXADDR_TOP (0xffffe000UL) | 83 | #define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000) |
76 | #endif | 84 | #endif |
77 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | 85 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) |
78 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) | 86 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) |
diff --git a/include/asm-mips/io.h b/include/asm-mips/io.h index df624e1ee6e2..bc5f3c53155f 100644 --- a/include/asm-mips/io.h +++ b/include/asm-mips/io.h | |||
@@ -172,7 +172,7 @@ extern unsigned long isa_slot_offset; | |||
172 | #define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT) | 172 | #define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT) |
173 | 173 | ||
174 | extern void __iomem * __ioremap(phys_t offset, phys_t size, unsigned long flags); | 174 | extern void __iomem * __ioremap(phys_t offset, phys_t size, unsigned long flags); |
175 | extern void __iounmap(volatile void __iomem *addr); | 175 | extern void __iounmap(const volatile void __iomem *addr); |
176 | 176 | ||
177 | static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size, | 177 | static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size, |
178 | unsigned long flags) | 178 | unsigned long flags) |
@@ -279,7 +279,7 @@ static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size, | |||
279 | #define ioremap_uncached_accelerated(offset, size) \ | 279 | #define ioremap_uncached_accelerated(offset, size) \ |
280 | __ioremap_mode((offset), (size), _CACHE_UNCACHED_ACCELERATED) | 280 | __ioremap_mode((offset), (size), _CACHE_UNCACHED_ACCELERATED) |
281 | 281 | ||
282 | static inline void iounmap(volatile void __iomem *addr) | 282 | static inline void iounmap(const volatile void __iomem *addr) |
283 | { | 283 | { |
284 | #define __IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == CKSEG1) | 284 | #define __IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == CKSEG1) |
285 | 285 | ||
@@ -562,32 +562,6 @@ extern void pci_iounmap(struct pci_dev *dev, void __iomem *); | |||
562 | #define eth_io_copy_and_sum(skb,src,len,unused) memcpy_fromio((skb)->data,(src),(len)) | 562 | #define eth_io_copy_and_sum(skb,src,len,unused) memcpy_fromio((skb)->data,(src),(len)) |
563 | 563 | ||
564 | /* | 564 | /* |
565 | * check_signature - find BIOS signatures | ||
566 | * @io_addr: mmio address to check | ||
567 | * @signature: signature block | ||
568 | * @length: length of signature | ||
569 | * | ||
570 | * Perform a signature comparison with the mmio address io_addr. This | ||
571 | * address should have been obtained by ioremap. | ||
572 | * Returns 1 on a match. | ||
573 | */ | ||
574 | static inline int check_signature(char __iomem *io_addr, | ||
575 | const unsigned char *signature, int length) | ||
576 | { | ||
577 | int retval = 0; | ||
578 | do { | ||
579 | if (readb(io_addr) != *signature) | ||
580 | goto out; | ||
581 | io_addr++; | ||
582 | signature++; | ||
583 | length--; | ||
584 | } while (length); | ||
585 | retval = 1; | ||
586 | out: | ||
587 | return retval; | ||
588 | } | ||
589 | |||
590 | /* | ||
591 | * The caches on some architectures aren't dma-coherent and have need to | 565 | * The caches on some architectures aren't dma-coherent and have need to |
592 | * handle this in software. There are three types of operations that | 566 | * handle this in software. There are three types of operations that |
593 | * can be applied to dma buffers. | 567 | * can be applied to dma buffers. |
diff --git a/include/asm-mips/irq.h b/include/asm-mips/irq.h index 1a9804c65369..35a05ca5560c 100644 --- a/include/asm-mips/irq.h +++ b/include/asm-mips/irq.h | |||
@@ -24,8 +24,6 @@ static inline int irq_canonicalize(int irq) | |||
24 | #define irq_canonicalize(irq) (irq) /* Sane hardware, sane code ... */ | 24 | #define irq_canonicalize(irq) (irq) /* Sane hardware, sane code ... */ |
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | struct pt_regs; | ||
28 | |||
29 | extern asmlinkage unsigned int do_IRQ(unsigned int irq); | 27 | extern asmlinkage unsigned int do_IRQ(unsigned int irq); |
30 | 28 | ||
31 | #ifdef CONFIG_MIPS_MT_SMTC | 29 | #ifdef CONFIG_MIPS_MT_SMTC |
@@ -76,4 +74,8 @@ extern int setup_irq_smtc(unsigned int irq, struct irqaction * new, | |||
76 | unsigned long hwmask); | 74 | unsigned long hwmask); |
77 | #endif /* CONFIG_MIPS_MT_SMTC */ | 75 | #endif /* CONFIG_MIPS_MT_SMTC */ |
78 | 76 | ||
77 | extern int allocate_irqno(void); | ||
78 | extern void alloc_legacy_irqno(void); | ||
79 | extern void free_irqno(unsigned int irq); | ||
80 | |||
79 | #endif /* _ASM_IRQ_H */ | 81 | #endif /* _ASM_IRQ_H */ |
diff --git a/include/asm-mips/mipsmtregs.h b/include/asm-mips/mipsmtregs.h index f637ce70758f..3e9468f424f4 100644 --- a/include/asm-mips/mipsmtregs.h +++ b/include/asm-mips/mipsmtregs.h | |||
@@ -352,6 +352,8 @@ do { \ | |||
352 | #define write_vpe_c0_vpecontrol(val) mttc0(1, 1, val) | 352 | #define write_vpe_c0_vpecontrol(val) mttc0(1, 1, val) |
353 | #define read_vpe_c0_vpeconf0() mftc0(1, 2) | 353 | #define read_vpe_c0_vpeconf0() mftc0(1, 2) |
354 | #define write_vpe_c0_vpeconf0(val) mttc0(1, 2, val) | 354 | #define write_vpe_c0_vpeconf0(val) mttc0(1, 2, val) |
355 | #define read_vpe_c0_count() mftc0(9, 0) | ||
356 | #define write_vpe_c0_count(val) mttc0(9, 0, val) | ||
355 | #define read_vpe_c0_status() mftc0(12, 0) | 357 | #define read_vpe_c0_status() mftc0(12, 0) |
356 | #define write_vpe_c0_status(val) mttc0(12, 0, val) | 358 | #define write_vpe_c0_status(val) mttc0(12, 0, val) |
357 | #define read_vpe_c0_cause() mftc0(13, 0) | 359 | #define read_vpe_c0_cause() mftc0(13, 0) |
diff --git a/include/asm-mips/pgalloc.h b/include/asm-mips/pgalloc.h index 582c1fe6cc4a..af121c67dc71 100644 --- a/include/asm-mips/pgalloc.h +++ b/include/asm-mips/pgalloc.h | |||
@@ -48,7 +48,7 @@ static inline pgd_t *pgd_alloc(struct mm_struct *mm) | |||
48 | 48 | ||
49 | ret = (pgd_t *) __get_free_pages(GFP_KERNEL, PGD_ORDER); | 49 | ret = (pgd_t *) __get_free_pages(GFP_KERNEL, PGD_ORDER); |
50 | if (ret) { | 50 | if (ret) { |
51 | init = pgd_offset(&init_mm, 0); | 51 | init = pgd_offset(&init_mm, 0UL); |
52 | pgd_init((unsigned long)ret); | 52 | pgd_init((unsigned long)ret); |
53 | memcpy(ret + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD, | 53 | memcpy(ret + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD, |
54 | (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); | 54 | (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); |
diff --git a/include/asm-mips/pgtable-64.h b/include/asm-mips/pgtable-64.h index d05fb6f38aa7..7e7320300aa3 100644 --- a/include/asm-mips/pgtable-64.h +++ b/include/asm-mips/pgtable-64.h | |||
@@ -174,7 +174,7 @@ static inline void pud_clear(pud_t *pudp) | |||
174 | #define __pmd_offset(address) pmd_index(address) | 174 | #define __pmd_offset(address) pmd_index(address) |
175 | 175 | ||
176 | /* to find an entry in a kernel page-table-directory */ | 176 | /* to find an entry in a kernel page-table-directory */ |
177 | #define pgd_offset_k(address) pgd_offset(&init_mm, 0) | 177 | #define pgd_offset_k(address) pgd_offset(&init_mm, 0UL) |
178 | 178 | ||
179 | #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) | 179 | #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) |
180 | #define pmd_index(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1)) | 180 | #define pmd_index(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1)) |
diff --git a/include/asm-mips/sibyte/sb1250.h b/include/asm-mips/sibyte/sb1250.h index b09e16c93ca0..2ba6988ddc8e 100644 --- a/include/asm-mips/sibyte/sb1250.h +++ b/include/asm-mips/sibyte/sb1250.h | |||
@@ -51,8 +51,8 @@ extern void sb1250_mask_irq(int cpu, int irq); | |||
51 | extern void sb1250_unmask_irq(int cpu, int irq); | 51 | extern void sb1250_unmask_irq(int cpu, int irq); |
52 | extern void sb1250_smp_finish(void); | 52 | extern void sb1250_smp_finish(void); |
53 | 53 | ||
54 | extern void bcm1480_hpt_setup(void); | ||
54 | extern void bcm1480_time_init(void); | 55 | extern void bcm1480_time_init(void); |
55 | extern unsigned long bcm1480_gettimeoffset(void); | ||
56 | extern void bcm1480_mask_irq(int cpu, int irq); | 56 | extern void bcm1480_mask_irq(int cpu, int irq); |
57 | extern void bcm1480_unmask_irq(int cpu, int irq); | 57 | extern void bcm1480_unmask_irq(int cpu, int irq); |
58 | extern void bcm1480_smp_finish(void); | 58 | extern void bcm1480_smp_finish(void); |
diff --git a/include/asm-mips/stackframe.h b/include/asm-mips/stackframe.h index 158a4cd12e46..1fae5dc58138 100644 --- a/include/asm-mips/stackframe.h +++ b/include/asm-mips/stackframe.h | |||
@@ -59,69 +59,43 @@ | |||
59 | .endm | 59 | .endm |
60 | 60 | ||
61 | #ifdef CONFIG_SMP | 61 | #ifdef CONFIG_SMP |
62 | .macro get_saved_sp /* SMP variation */ | ||
63 | #ifdef CONFIG_32BIT | ||
64 | #ifdef CONFIG_MIPS_MT_SMTC | 62 | #ifdef CONFIG_MIPS_MT_SMTC |
65 | .set mips32 | 63 | #define PTEBASE_SHIFT 19 /* TCBIND */ |
66 | mfc0 k0, CP0_TCBIND; | ||
67 | .set mips0 | ||
68 | lui k1, %hi(kernelsp) | ||
69 | srl k0, k0, 19 | ||
70 | /* No need to shift down and up to clear bits 0-1 */ | ||
71 | #else | 64 | #else |
72 | mfc0 k0, CP0_CONTEXT | 65 | #define PTEBASE_SHIFT 23 /* CONTEXT */ |
73 | lui k1, %hi(kernelsp) | ||
74 | srl k0, k0, 23 | ||
75 | #endif | ||
76 | addu k1, k0 | ||
77 | LONG_L k1, %lo(kernelsp)(k1) | ||
78 | #endif | 66 | #endif |
79 | #ifdef CONFIG_64BIT | 67 | .macro get_saved_sp /* SMP variation */ |
80 | #ifdef CONFIG_MIPS_MT_SMTC | 68 | #ifdef CONFIG_MIPS_MT_SMTC |
81 | .set mips64 | 69 | mfc0 k0, CP0_TCBIND |
82 | mfc0 k0, CP0_TCBIND; | ||
83 | .set mips0 | ||
84 | lui k0, %highest(kernelsp) | ||
85 | dsrl k1, 19 | ||
86 | /* No need to shift down and up to clear bits 0-2 */ | ||
87 | #else | 70 | #else |
88 | MFC0 k1, CP0_CONTEXT | 71 | MFC0 k0, CP0_CONTEXT |
89 | lui k0, %highest(kernelsp) | 72 | #endif |
90 | dsrl k1, 23 | 73 | #if defined(CONFIG_BUILD_ELF64) || (defined(CONFIG_64BIT) && __GNUC__ < 4) |
91 | daddiu k0, %higher(kernelsp) | 74 | lui k1, %highest(kernelsp) |
92 | dsll k0, k0, 16 | 75 | daddiu k1, %higher(kernelsp) |
93 | daddiu k0, %hi(kernelsp) | 76 | dsll k1, 16 |
94 | dsll k0, k0, 16 | 77 | daddiu k1, %hi(kernelsp) |
95 | #endif /* CONFIG_MIPS_MT_SMTC */ | 78 | dsll k1, 16 |
96 | daddu k1, k1, k0 | 79 | #else |
80 | lui k1, %hi(kernelsp) | ||
81 | #endif | ||
82 | LONG_SRL k0, PTEBASE_SHIFT | ||
83 | LONG_ADDU k1, k0 | ||
97 | LONG_L k1, %lo(kernelsp)(k1) | 84 | LONG_L k1, %lo(kernelsp)(k1) |
98 | #endif /* CONFIG_64BIT */ | ||
99 | .endm | 85 | .endm |
100 | 86 | ||
101 | .macro set_saved_sp stackp temp temp2 | 87 | .macro set_saved_sp stackp temp temp2 |
102 | #ifdef CONFIG_32BIT | ||
103 | #ifdef CONFIG_MIPS_MT_SMTC | ||
104 | mfc0 \temp, CP0_TCBIND | ||
105 | srl \temp, 19 | ||
106 | #else | ||
107 | mfc0 \temp, CP0_CONTEXT | ||
108 | srl \temp, 23 | ||
109 | #endif | ||
110 | #endif | ||
111 | #ifdef CONFIG_64BIT | ||
112 | #ifdef CONFIG_MIPS_MT_SMTC | 88 | #ifdef CONFIG_MIPS_MT_SMTC |
113 | mfc0 \temp, CP0_TCBIND | 89 | mfc0 \temp, CP0_TCBIND |
114 | dsrl \temp, 19 | ||
115 | #else | 90 | #else |
116 | MFC0 \temp, CP0_CONTEXT | 91 | MFC0 \temp, CP0_CONTEXT |
117 | dsrl \temp, 23 | ||
118 | #endif | ||
119 | #endif | 92 | #endif |
93 | LONG_SRL \temp, PTEBASE_SHIFT | ||
120 | LONG_S \stackp, kernelsp(\temp) | 94 | LONG_S \stackp, kernelsp(\temp) |
121 | .endm | 95 | .endm |
122 | #else | 96 | #else |
123 | .macro get_saved_sp /* Uniprocessor variation */ | 97 | .macro get_saved_sp /* Uniprocessor variation */ |
124 | #ifdef CONFIG_64BIT | 98 | #if defined(CONFIG_BUILD_ELF64) || (defined(CONFIG_64BIT) && __GNUC__ < 4) |
125 | lui k1, %highest(kernelsp) | 99 | lui k1, %highest(kernelsp) |
126 | daddiu k1, %higher(kernelsp) | 100 | daddiu k1, %higher(kernelsp) |
127 | dsll k1, k1, 16 | 101 | dsll k1, k1, 16 |
diff --git a/include/asm-mips/system.h b/include/asm-mips/system.h index dcb4701d5728..3056feed5a36 100644 --- a/include/asm-mips/system.h +++ b/include/asm-mips/system.h | |||
@@ -392,7 +392,7 @@ static inline unsigned long __cmpxchg_u64(volatile int * m, unsigned long old, | |||
392 | { | 392 | { |
393 | __u64 retval; | 393 | __u64 retval; |
394 | 394 | ||
395 | if (cpu_has_llsc) { | 395 | if (cpu_has_llsc && R10000_LLSC_WAR) { |
396 | __asm__ __volatile__( | 396 | __asm__ __volatile__( |
397 | " .set push \n" | 397 | " .set push \n" |
398 | " .set noat \n" | 398 | " .set noat \n" |
diff --git a/include/asm-mips/termbits.h b/include/asm-mips/termbits.h index fa6d04dac56b..b62ec7c521cc 100644 --- a/include/asm-mips/termbits.h +++ b/include/asm-mips/termbits.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * License. See the file "COPYING" in the main directory of this archive | 3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (C) 1995, 1996, 1999, 2001 Ralf Baechle | 6 | * Copyright (C) 1995, 96, 99, 2001, 06 Ralf Baechle |
7 | * Copyright (C) 1999 Silicon Graphics, Inc. | 7 | * Copyright (C) 1999 Silicon Graphics, Inc. |
8 | * Copyright (C) 2001 MIPS Technologies, Inc. | 8 | * Copyright (C) 2001 MIPS Technologies, Inc. |
9 | */ | 9 | */ |
@@ -13,14 +13,8 @@ | |||
13 | #include <linux/posix_types.h> | 13 | #include <linux/posix_types.h> |
14 | 14 | ||
15 | typedef unsigned char cc_t; | 15 | typedef unsigned char cc_t; |
16 | #if (_MIPS_SZLONG == 32) | 16 | typedef unsigned int speed_t; |
17 | typedef unsigned long speed_t; | 17 | typedef unsigned int tcflag_t; |
18 | typedef unsigned long tcflag_t; | ||
19 | #endif | ||
20 | #if (_MIPS_SZLONG == 64) | ||
21 | typedef __u32 speed_t; | ||
22 | typedef __u32 tcflag_t; | ||
23 | #endif | ||
24 | 18 | ||
25 | /* | 19 | /* |
26 | * The ABI says nothing about NCC but seems to use NCCS as | 20 | * The ABI says nothing about NCC but seems to use NCCS as |
diff --git a/include/asm-mips/time.h b/include/asm-mips/time.h index 28512ba2266e..625acd337bc3 100644 --- a/include/asm-mips/time.h +++ b/include/asm-mips/time.h | |||
@@ -48,7 +48,8 @@ extern void (*mips_timer_ack)(void); | |||
48 | * If mips_hpt_read is NULL, an R4k-compatible timer setup is attempted. | 48 | * If mips_hpt_read is NULL, an R4k-compatible timer setup is attempted. |
49 | */ | 49 | */ |
50 | extern unsigned int (*mips_hpt_read)(void); | 50 | extern unsigned int (*mips_hpt_read)(void); |
51 | extern void (*mips_hpt_init)(unsigned int); | 51 | extern void (*mips_hpt_init)(void); |
52 | extern unsigned int mips_hpt_mask; | ||
52 | 53 | ||
53 | /* | 54 | /* |
54 | * to_tm() converts system time back to (year, mon, day, hour, min, sec). | 55 | * to_tm() converts system time back to (year, mon, day, hour, min, sec). |
@@ -58,13 +59,6 @@ extern void (*mips_hpt_init)(unsigned int); | |||
58 | extern void to_tm(unsigned long tim, struct rtc_time *tm); | 59 | extern void to_tm(unsigned long tim, struct rtc_time *tm); |
59 | 60 | ||
60 | /* | 61 | /* |
61 | * do_gettimeoffset(). By default, this func pointer points to | ||
62 | * do_null_gettimeoffset(), which leads to the same resolution as HZ. | ||
63 | * Higher resolution versions are available, which give ~1us resolution. | ||
64 | */ | ||
65 | extern unsigned long (*do_gettimeoffset)(void); | ||
66 | |||
67 | /* | ||
68 | * high-level timer interrupt routines. | 62 | * high-level timer interrupt routines. |
69 | */ | 63 | */ |
70 | extern irqreturn_t timer_interrupt(int irq, void *dev_id); | 64 | extern irqreturn_t timer_interrupt(int irq, void *dev_id); |
diff --git a/include/asm-mips/unistd.h b/include/asm-mips/unistd.h index 685c91467e63..ec56aa52f669 100644 --- a/include/asm-mips/unistd.h +++ b/include/asm-mips/unistd.h | |||
@@ -331,16 +331,19 @@ | |||
331 | #define __NR_move_pages (__NR_Linux + 308) | 331 | #define __NR_move_pages (__NR_Linux + 308) |
332 | #define __NR_set_robust_list (__NR_Linux + 309) | 332 | #define __NR_set_robust_list (__NR_Linux + 309) |
333 | #define __NR_get_robust_list (__NR_Linux + 310) | 333 | #define __NR_get_robust_list (__NR_Linux + 310) |
334 | #define __NR_kexec_load (__NR_Linux + 311) | ||
335 | #define __NR_getcpu (__NR_Linux + 312) | ||
336 | #define __NR_epoll_pwait (__NR_Linux + 313) | ||
334 | 337 | ||
335 | /* | 338 | /* |
336 | * Offset of the last Linux o32 flavoured syscall | 339 | * Offset of the last Linux o32 flavoured syscall |
337 | */ | 340 | */ |
338 | #define __NR_Linux_syscalls 310 | 341 | #define __NR_Linux_syscalls 313 |
339 | 342 | ||
340 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ | 343 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ |
341 | 344 | ||
342 | #define __NR_O32_Linux 4000 | 345 | #define __NR_O32_Linux 4000 |
343 | #define __NR_O32_Linux_syscalls 310 | 346 | #define __NR_O32_Linux_syscalls 313 |
344 | 347 | ||
345 | #if _MIPS_SIM == _MIPS_SIM_ABI64 | 348 | #if _MIPS_SIM == _MIPS_SIM_ABI64 |
346 | 349 | ||
@@ -618,16 +621,19 @@ | |||
618 | #define __NR_move_pages (__NR_Linux + 267) | 621 | #define __NR_move_pages (__NR_Linux + 267) |
619 | #define __NR_set_robust_list (__NR_Linux + 268) | 622 | #define __NR_set_robust_list (__NR_Linux + 268) |
620 | #define __NR_get_robust_list (__NR_Linux + 269) | 623 | #define __NR_get_robust_list (__NR_Linux + 269) |
624 | #define __NR_kexec_load (__NR_Linux + 270) | ||
625 | #define __NR_getcpu (__NR_Linux + 271) | ||
626 | #define __NR_epoll_pwait (__NR_Linux + 272) | ||
621 | 627 | ||
622 | /* | 628 | /* |
623 | * Offset of the last Linux 64-bit flavoured syscall | 629 | * Offset of the last Linux 64-bit flavoured syscall |
624 | */ | 630 | */ |
625 | #define __NR_Linux_syscalls 269 | 631 | #define __NR_Linux_syscalls 272 |
626 | 632 | ||
627 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ | 633 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ |
628 | 634 | ||
629 | #define __NR_64_Linux 5000 | 635 | #define __NR_64_Linux 5000 |
630 | #define __NR_64_Linux_syscalls 269 | 636 | #define __NR_64_Linux_syscalls 272 |
631 | 637 | ||
632 | #if _MIPS_SIM == _MIPS_SIM_NABI32 | 638 | #if _MIPS_SIM == _MIPS_SIM_NABI32 |
633 | 639 | ||
@@ -909,16 +915,19 @@ | |||
909 | #define __NR_move_pages (__NR_Linux + 271) | 915 | #define __NR_move_pages (__NR_Linux + 271) |
910 | #define __NR_set_robust_list (__NR_Linux + 272) | 916 | #define __NR_set_robust_list (__NR_Linux + 272) |
911 | #define __NR_get_robust_list (__NR_Linux + 273) | 917 | #define __NR_get_robust_list (__NR_Linux + 273) |
918 | #define __NR_kexec_load (__NR_Linux + 274) | ||
919 | #define __NR_getcpu (__NR_Linux + 275) | ||
920 | #define __NR_epoll_pwait (__NR_Linux + 276) | ||
912 | 921 | ||
913 | /* | 922 | /* |
914 | * Offset of the last N32 flavoured syscall | 923 | * Offset of the last N32 flavoured syscall |
915 | */ | 924 | */ |
916 | #define __NR_Linux_syscalls 273 | 925 | #define __NR_Linux_syscalls 276 |
917 | 926 | ||
918 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ | 927 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ |
919 | 928 | ||
920 | #define __NR_N32_Linux 6000 | 929 | #define __NR_N32_Linux 6000 |
921 | #define __NR_N32_Linux_syscalls 273 | 930 | #define __NR_N32_Linux_syscalls 276 |
922 | 931 | ||
923 | #ifdef __KERNEL__ | 932 | #ifdef __KERNEL__ |
924 | 933 | ||
@@ -1186,6 +1195,7 @@ type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \ | |||
1186 | #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */ | 1195 | #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */ |
1187 | 1196 | ||
1188 | 1197 | ||
1198 | #define __ARCH_OMIT_COMPAT_SYS_GETDENTS64 | ||
1189 | #define __ARCH_WANT_IPC_PARSE_VERSION | 1199 | #define __ARCH_WANT_IPC_PARSE_VERSION |
1190 | #define __ARCH_WANT_OLD_READDIR | 1200 | #define __ARCH_WANT_OLD_READDIR |
1191 | #define __ARCH_WANT_SYS_ALARM | 1201 | #define __ARCH_WANT_SYS_ALARM |
diff --git a/include/asm-mips/vr41xx/vr41xx.h b/include/asm-mips/vr41xx/vr41xx.h index dd3eb3dc5886..88b492f6ea9c 100644 --- a/include/asm-mips/vr41xx/vr41xx.h +++ b/include/asm-mips/vr41xx/vr41xx.h | |||
@@ -75,7 +75,7 @@ extern void vr41xx_mask_clock(vr41xx_clock_t clock); | |||
75 | * Interrupt Control Unit | 75 | * Interrupt Control Unit |
76 | */ | 76 | */ |
77 | extern int vr41xx_set_intassign(unsigned int irq, unsigned char intassign); | 77 | extern int vr41xx_set_intassign(unsigned int irq, unsigned char intassign); |
78 | extern int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int, struct pt_regs *)); | 78 | extern int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int)); |
79 | 79 | ||
80 | #define PIUINT_COMMAND 0x0040 | 80 | #define PIUINT_COMMAND 0x0040 |
81 | #define PIUINT_DATA 0x0020 | 81 | #define PIUINT_DATA 0x0020 |