aboutsummaryrefslogtreecommitdiffstats
path: root/arch/cris
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-09-24 20:08:56 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-24 20:08:56 -0400
commit5f8fe4270e53d38421ba34c428c3b58933b48e50 (patch)
tree2148a3ba1ec842d0d0ad8f3e3eb209eb6eba673d /arch/cris
parentd9fbd9a2cd5ac1b286a7d7cdb1a180ce1edaee2f (diff)
parent24924ece4482d5466ffcd0affedce63816c88e53 (diff)
Merge branch 'for-linus' of git://repo.or.cz/cris-mirror
* 'for-linus' of git://repo.or.cz/cris-mirror: CRIS: Cleanup linker script using new linker script macros. ARRAY_SIZE changes CRIS: convert to asm-generic/hardirq.h CRISv10: Don't autonegotiate if autonegotiation is off CRIS: fix defconfig build failure CRIS: add pgprot_noncached
Diffstat (limited to 'arch/cris')
-rw-r--r--arch/cris/arch-v10/kernel/time.c1
-rw-r--r--arch/cris/arch-v32/kernel/smp.c2
-rw-r--r--arch/cris/arch-v32/kernel/time.c1
-rw-r--r--arch/cris/arch-v32/mach-a3/io.c2
-rw-r--r--arch/cris/arch-v32/mach-fs/io.c2
-rw-r--r--arch/cris/include/arch-v10/arch/mmu.h9
-rw-r--r--arch/cris/include/arch-v32/arch/mmu.h10
-rw-r--r--arch/cris/include/asm/hardirq.h12
-rw-r--r--arch/cris/include/asm/pgtable.h2
-rw-r--r--arch/cris/kernel/irq.c5
-rw-r--r--arch/cris/kernel/vmlinux.lds.S37
11 files changed, 25 insertions, 58 deletions
diff --git a/arch/cris/arch-v10/kernel/time.c b/arch/cris/arch-v10/kernel/time.c
index 2b73c7a5b649..31ca1418d5a7 100644
--- a/arch/cris/arch-v10/kernel/time.c
+++ b/arch/cris/arch-v10/kernel/time.c
@@ -28,7 +28,6 @@
28 28
29extern void update_xtime_from_cmos(void); 29extern void update_xtime_from_cmos(void);
30extern int set_rtc_mmss(unsigned long nowtime); 30extern int set_rtc_mmss(unsigned long nowtime);
31extern int setup_irq(int, struct irqaction *);
32extern int have_rtc; 31extern int have_rtc;
33 32
34unsigned long get_ns_in_jiffie(void) 33unsigned long get_ns_in_jiffie(void)
diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c
index d2a3ff8c4d37..058adddf4e4b 100644
--- a/arch/cris/arch-v32/kernel/smp.c
+++ b/arch/cris/arch-v32/kernel/smp.c
@@ -52,8 +52,6 @@ static struct mm_struct* flush_mm;
52static struct vm_area_struct* flush_vma; 52static struct vm_area_struct* flush_vma;
53static unsigned long flush_addr; 53static unsigned long flush_addr;
54 54
55extern int setup_irq(int, struct irqaction *);
56
57/* Mode registers */ 55/* Mode registers */
58static unsigned long irq_regs[NR_CPUS] = { 56static unsigned long irq_regs[NR_CPUS] = {
59 regi_irq, 57 regi_irq,
diff --git a/arch/cris/arch-v32/kernel/time.c b/arch/cris/arch-v32/kernel/time.c
index 65633d0dab86..b1920d8de403 100644
--- a/arch/cris/arch-v32/kernel/time.c
+++ b/arch/cris/arch-v32/kernel/time.c
@@ -46,7 +46,6 @@ unsigned long timer_regs[NR_CPUS] =
46 46
47extern void update_xtime_from_cmos(void); 47extern void update_xtime_from_cmos(void);
48extern int set_rtc_mmss(unsigned long nowtime); 48extern int set_rtc_mmss(unsigned long nowtime);
49extern int setup_irq(int, struct irqaction *);
50extern int have_rtc; 49extern int have_rtc;
51 50
52#ifdef CONFIG_CPU_FREQ 51#ifdef CONFIG_CPU_FREQ
diff --git a/arch/cris/arch-v32/mach-a3/io.c b/arch/cris/arch-v32/mach-a3/io.c
index c22f67ecd9f3..090ceb99ef0b 100644
--- a/arch/cris/arch-v32/mach-a3/io.c
+++ b/arch/cris/arch-v32/mach-a3/io.c
@@ -36,7 +36,7 @@ struct crisv32_ioport crisv32_ioports[] = {
36 }, 36 },
37}; 37};
38 38
39#define NBR_OF_PORTS sizeof(crisv32_ioports)/sizeof(struct crisv32_ioport) 39#define NBR_OF_PORTS ARRAY_SIZE(crisv32_ioports)
40 40
41struct crisv32_iopin crisv32_led_net0_green; 41struct crisv32_iopin crisv32_led_net0_green;
42struct crisv32_iopin crisv32_led_net0_red; 42struct crisv32_iopin crisv32_led_net0_red;
diff --git a/arch/cris/arch-v32/mach-fs/io.c b/arch/cris/arch-v32/mach-fs/io.c
index cb6327b1f8f8..a6958661fa8e 100644
--- a/arch/cris/arch-v32/mach-fs/io.c
+++ b/arch/cris/arch-v32/mach-fs/io.c
@@ -52,7 +52,7 @@ struct crisv32_ioport crisv32_ioports[] = {
52 } 52 }
53}; 53};
54 54
55#define NBR_OF_PORTS sizeof(crisv32_ioports)/sizeof(struct crisv32_ioport) 55#define NBR_OF_PORTS ARRAY_SIZE(crisv32_ioports)
56 56
57struct crisv32_iopin crisv32_led_net0_green; 57struct crisv32_iopin crisv32_led_net0_green;
58struct crisv32_iopin crisv32_led_net0_red; 58struct crisv32_iopin crisv32_led_net0_red;
diff --git a/arch/cris/include/arch-v10/arch/mmu.h b/arch/cris/include/arch-v10/arch/mmu.h
index df84f1716e6b..e829e5a37bbe 100644
--- a/arch/cris/include/arch-v10/arch/mmu.h
+++ b/arch/cris/include/arch-v10/arch/mmu.h
@@ -33,10 +33,10 @@ typedef struct
33 33
34/* CRIS PTE bits (see R_TLB_LO in the register description) 34/* CRIS PTE bits (see R_TLB_LO in the register description)
35 * 35 *
36 * Bit: 31-13 12-------4 3 2 1 0 36 * Bit: 31 30-13 12-------4 3 2 1 0
37 * ________________________________________________ 37 * _______________________________________________________
38 * | pfn | reserved | global | valid | kernel | we | 38 * | cache |pfn | reserved | global | valid | kernel | we |
39 * |_____|__________|________|_______|________|_____| 39 * |_______|____|__________|________|_______|________|_____|
40 * 40 *
41 * (pfn = physical frame number) 41 * (pfn = physical frame number)
42 */ 42 */
@@ -53,6 +53,7 @@ typedef struct
53#define _PAGE_VALID (1<<2) /* page is valid */ 53#define _PAGE_VALID (1<<2) /* page is valid */
54#define _PAGE_SILENT_READ (1<<2) /* synonym */ 54#define _PAGE_SILENT_READ (1<<2) /* synonym */
55#define _PAGE_GLOBAL (1<<3) /* global page - context is ignored */ 55#define _PAGE_GLOBAL (1<<3) /* global page - context is ignored */
56#define _PAGE_NO_CACHE (1<<31) /* part of the uncached memory map */
56 57
57/* Bits the HW doesn't care about but the kernel uses them in SW */ 58/* Bits the HW doesn't care about but the kernel uses them in SW */
58 59
diff --git a/arch/cris/include/arch-v32/arch/mmu.h b/arch/cris/include/arch-v32/arch/mmu.h
index 6bcdc3fdf7dc..c1a13e05e963 100644
--- a/arch/cris/include/arch-v32/arch/mmu.h
+++ b/arch/cris/include/arch-v32/arch/mmu.h
@@ -28,10 +28,10 @@ typedef struct
28/* 28/*
29 * CRISv32 PTE bits: 29 * CRISv32 PTE bits:
30 * 30 *
31 * Bit: 31-13 12-5 4 3 2 1 0 31 * Bit: 31 30-13 12-5 4 3 2 1 0
32 * +-----+------+--------+-------+--------+-------+---------+ 32 * +-------+-----+------+--------+-------+--------+-------+---------+
33 * | pfn | zero | global | valid | kernel | write | execute | 33 * | cache | pfn | zero | global | valid | kernel | write | execute |
34 * +-----+------+--------+-------+--------+-------+---------+ 34 * +-------+-----+------+--------+-------+--------+-------+---------+
35 */ 35 */
36 36
37/* 37/*
@@ -45,6 +45,8 @@ typedef struct
45#define _PAGE_VALID (1 << 3) /* Page is valid. */ 45#define _PAGE_VALID (1 << 3) /* Page is valid. */
46#define _PAGE_SILENT_READ (1 << 3) /* Same as above. */ 46#define _PAGE_SILENT_READ (1 << 3) /* Same as above. */
47#define _PAGE_GLOBAL (1 << 4) /* Global page. */ 47#define _PAGE_GLOBAL (1 << 4) /* Global page. */
48#define _PAGE_NO_CACHE (1 << 31) /* part of the uncached memory map */
49
48 50
49/* 51/*
50 * The hardware doesn't care about these bits, but the kernel uses them in 52 * The hardware doesn't care about these bits, but the kernel uses them in
diff --git a/arch/cris/include/asm/hardirq.h b/arch/cris/include/asm/hardirq.h
index 74178adeb1cd..17bb12d760b2 100644
--- a/arch/cris/include/asm/hardirq.h
+++ b/arch/cris/include/asm/hardirq.h
@@ -2,16 +2,6 @@
2#define __ASM_HARDIRQ_H 2#define __ASM_HARDIRQ_H
3 3
4#include <asm/irq.h> 4#include <asm/irq.h>
5#include <linux/threads.h>
6#include <linux/cache.h>
7
8typedef struct {
9 unsigned int __softirq_pending;
10} ____cacheline_aligned irq_cpustat_t;
11
12#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
13
14void ack_bad_irq(unsigned int irq);
15 5
16#define HARDIRQ_BITS 8 6#define HARDIRQ_BITS 8
17 7
@@ -24,4 +14,6 @@ void ack_bad_irq(unsigned int irq);
24# error HARDIRQ_BITS is too low! 14# error HARDIRQ_BITS is too low!
25#endif 15#endif
26 16
17#include <asm-generic/hardirq.h>
18
27#endif /* __ASM_HARDIRQ_H */ 19#endif /* __ASM_HARDIRQ_H */
diff --git a/arch/cris/include/asm/pgtable.h b/arch/cris/include/asm/pgtable.h
index 50aa974aa834..1fcce00f01f4 100644
--- a/arch/cris/include/asm/pgtable.h
+++ b/arch/cris/include/asm/pgtable.h
@@ -197,6 +197,8 @@ static inline pte_t __mk_pte(void * page, pgprot_t pgprot)
197static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) 197static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
198{ pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot); return pte; } 198{ pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot); return pte; }
199 199
200#define pgprot_noncached(prot) __pgprot((pgprot_val(prot) | _PAGE_NO_CACHE))
201
200 202
201/* pte_val refers to a page in the 0x4xxxxxxx physical DRAM interval 203/* pte_val refers to a page in the 0x4xxxxxxx physical DRAM interval
202 * __pte_page(pte_val) refers to the "virtual" DRAM interval 204 * __pte_page(pte_val) refers to the "virtual" DRAM interval
diff --git a/arch/cris/kernel/irq.c b/arch/cris/kernel/irq.c
index 7f642fcffbfc..0ca7d9892cc6 100644
--- a/arch/cris/kernel/irq.c
+++ b/arch/cris/kernel/irq.c
@@ -38,11 +38,6 @@
38 38
39#include <asm/io.h> 39#include <asm/io.h>
40 40
41void ack_bad_irq(unsigned int irq)
42{
43 printk("unexpected IRQ trap at vector %02x\n", irq);
44}
45
46int show_interrupts(struct seq_file *p, void *v) 41int show_interrupts(struct seq_file *p, void *v)
47{ 42{
48 int i = *(loff_t *) v, j; 43 int i = *(loff_t *) v, j;
diff --git a/arch/cris/kernel/vmlinux.lds.S b/arch/cris/kernel/vmlinux.lds.S
index 6c81836b9229..bbfda67d2907 100644
--- a/arch/cris/kernel/vmlinux.lds.S
+++ b/arch/cris/kernel/vmlinux.lds.S
@@ -51,10 +51,7 @@ SECTIONS
51 _etext = . ; /* End of text section. */ 51 _etext = . ; /* End of text section. */
52 __etext = .; 52 __etext = .;
53 53
54 . = ALIGN(4); /* Exception table. */ 54 EXCEPTION_TABLE(4)
55 __start___ex_table = .;
56 __ex_table : { *(__ex_table) }
57 __stop___ex_table = .;
58 55
59 RODATA 56 RODATA
60 57
@@ -67,36 +64,24 @@ SECTIONS
67 __edata = . ; /* End of data section. */ 64 __edata = . ; /* End of data section. */
68 _edata = . ; 65 _edata = . ;
69 66
70 . = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned. */ 67 INIT_TASK_DATA_SECTION(PAGE_SIZE)
71 .data.init_task : { *(.data.init_task) }
72 68
73 . = ALIGN(PAGE_SIZE); /* Init code and data. */ 69 . = ALIGN(PAGE_SIZE); /* Init code and data. */
74 __init_begin = .; 70 __init_begin = .;
75 .init.text : { 71 INIT_TEXT_SECTION(PAGE_SIZE)
76 _sinittext = .;
77 INIT_TEXT
78 _einittext = .;
79 }
80 .init.data : { INIT_DATA } 72 .init.data : { INIT_DATA }
81 . = ALIGN(16); 73 .init.setup : { INIT_SETUP(16) }
82 __setup_start = .;
83 .init.setup : { *(.init.setup) }
84 __setup_end = .;
85#ifdef CONFIG_ETRAX_ARCH_V32 74#ifdef CONFIG_ETRAX_ARCH_V32
86 __start___param = .; 75 __start___param = .;
87 __param : { *(__param) } 76 __param : { *(__param) }
88 __stop___param = .; 77 __stop___param = .;
89#endif 78#endif
90 .initcall.init : { 79 .initcall.init : {
91 __initcall_start = .; 80 INIT_CALLS
92 INITCALLS
93 __initcall_end = .;
94 } 81 }
95 82
96 .con_initcall.init : { 83 .con_initcall.init : {
97 __con_initcall_start = .; 84 CON_INITCALL
98 *(.con_initcall.init)
99 __con_initcall_end = .;
100 } 85 }
101 SECURITY_INIT 86 SECURITY_INIT
102 87
@@ -114,9 +99,7 @@ SECTIONS
114 PERCPU(PAGE_SIZE) 99 PERCPU(PAGE_SIZE)
115 100
116 .init.ramfs : { 101 .init.ramfs : {
117 __initramfs_start = .; 102 INIT_RAM_FS
118 *(.init.ramfs)
119 __initramfs_end = .;
120 } 103 }
121#endif 104#endif
122 105
@@ -130,11 +113,7 @@ SECTIONS
130 __init_end = .; 113 __init_end = .;
131 114
132 __data_end = . ; /* Move to _edata ? */ 115 __data_end = . ; /* Move to _edata ? */
133 __bss_start = .; /* BSS. */ 116 BSS_SECTION(0, 0, 0)
134 .bss : {
135 *(COMMON)
136 *(.bss)
137 }
138 117
139 . = ALIGN (0x20); 118 . = ALIGN (0x20);
140 _end = .; 119 _end = .;