diff options
Diffstat (limited to 'arch/cris')
-rw-r--r-- | arch/cris/Kconfig | 1 | ||||
-rw-r--r-- | arch/cris/arch-v10/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/cris/arch-v10/kernel/time.c | 4 | ||||
-rw-r--r-- | arch/cris/arch-v10/mm/init.c | 2 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/irq.c | 8 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/smp.c | 4 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/time.c | 6 | ||||
-rw-r--r-- | arch/cris/include/asm/bitops.h | 3 | ||||
-rw-r--r-- | arch/cris/include/asm/thread_info.h | 2 | ||||
-rw-r--r-- | arch/cris/include/asm/types.h | 9 | ||||
-rw-r--r-- | arch/cris/kernel/irq.c | 39 | ||||
-rw-r--r-- | arch/cris/kernel/vmlinux.lds.S | 7 |
12 files changed, 17 insertions, 70 deletions
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 82985032233a..04a7fc5eaf46 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -56,6 +56,7 @@ config CRIS | |||
56 | select HAVE_IDE | 56 | select HAVE_IDE |
57 | select HAVE_GENERIC_HARDIRQS | 57 | select HAVE_GENERIC_HARDIRQS |
58 | select GENERIC_HARDIRQS_NO_DEPRECATED | 58 | select GENERIC_HARDIRQS_NO_DEPRECATED |
59 | select GENERIC_IRQ_SHOW | ||
59 | 60 | ||
60 | config HZ | 61 | config HZ |
61 | int | 62 | int |
diff --git a/arch/cris/arch-v10/kernel/irq.c b/arch/cris/arch-v10/kernel/irq.c index 7328a7cf7449..907cfb5a873d 100644 --- a/arch/cris/arch-v10/kernel/irq.c +++ b/arch/cris/arch-v10/kernel/irq.c | |||
@@ -199,7 +199,7 @@ init_IRQ(void) | |||
199 | 199 | ||
200 | /* Initialize IRQ handler descriptors. */ | 200 | /* Initialize IRQ handler descriptors. */ |
201 | for(i = 2; i < NR_IRQS; i++) { | 201 | for(i = 2; i < NR_IRQS; i++) { |
202 | set_irq_desc_and_handler(i, &crisv10_irq_type, | 202 | irq_set_chip_and_handler(i, &crisv10_irq_type, |
203 | handle_simple_irq); | 203 | handle_simple_irq); |
204 | set_int_vector(i, interrupt[i]); | 204 | set_int_vector(i, interrupt[i]); |
205 | } | 205 | } |
diff --git a/arch/cris/arch-v10/kernel/time.c b/arch/cris/arch-v10/kernel/time.c index 00eb36f8debf..20c85b5dc7d0 100644 --- a/arch/cris/arch-v10/kernel/time.c +++ b/arch/cris/arch-v10/kernel/time.c | |||
@@ -140,7 +140,7 @@ stop_watchdog(void) | |||
140 | 140 | ||
141 | /* | 141 | /* |
142 | * timer_interrupt() needs to keep up the real-time clock, | 142 | * timer_interrupt() needs to keep up the real-time clock, |
143 | * as well as call the "do_timer()" routine every clocktick | 143 | * as well as call the "xtime_update()" routine every clocktick |
144 | */ | 144 | */ |
145 | 145 | ||
146 | //static unsigned short myjiff; /* used by our debug routine print_timestamp */ | 146 | //static unsigned short myjiff; /* used by our debug routine print_timestamp */ |
@@ -176,7 +176,7 @@ timer_interrupt(int irq, void *dev_id) | |||
176 | 176 | ||
177 | /* call the real timer interrupt handler */ | 177 | /* call the real timer interrupt handler */ |
178 | 178 | ||
179 | do_timer(1); | 179 | xtime_update(1); |
180 | 180 | ||
181 | cris_do_profile(regs); /* Save profiling information */ | 181 | cris_do_profile(regs); /* Save profiling information */ |
182 | return IRQ_HANDLED; | 182 | return IRQ_HANDLED; |
diff --git a/arch/cris/arch-v10/mm/init.c b/arch/cris/arch-v10/mm/init.c index baa746ce4e74..e7f8066105aa 100644 --- a/arch/cris/arch-v10/mm/init.c +++ b/arch/cris/arch-v10/mm/init.c | |||
@@ -241,7 +241,7 @@ flush_etrax_cacherange(void *startadr, int length) | |||
241 | } | 241 | } |
242 | 242 | ||
243 | /* Due to a bug in Etrax100(LX) all versions, receiving DMA buffers | 243 | /* Due to a bug in Etrax100(LX) all versions, receiving DMA buffers |
244 | * will occationally corrupt certain CPU writes if the DMA buffers | 244 | * will occasionally corrupt certain CPU writes if the DMA buffers |
245 | * happen to be hot in the cache. | 245 | * happen to be hot in the cache. |
246 | * | 246 | * |
247 | * As a workaround, we have to flush the relevant parts of the cache | 247 | * As a workaround, we have to flush the relevant parts of the cache |
diff --git a/arch/cris/arch-v32/kernel/irq.c b/arch/cris/arch-v32/kernel/irq.c index 0ad9db5126c7..8023176e19b2 100644 --- a/arch/cris/arch-v32/kernel/irq.c +++ b/arch/cris/arch-v32/kernel/irq.c | |||
@@ -451,16 +451,16 @@ init_IRQ(void) | |||
451 | 451 | ||
452 | /* Point all IRQ's to bad handlers. */ | 452 | /* Point all IRQ's to bad handlers. */ |
453 | for (i = FIRST_IRQ, j = 0; j < NR_IRQS; i++, j++) { | 453 | for (i = FIRST_IRQ, j = 0; j < NR_IRQS; i++, j++) { |
454 | set_irq_chip_and_handler(j, &crisv32_irq_type, | 454 | irq_set_chip_and_handler(j, &crisv32_irq_type, |
455 | handle_simple_irq); | 455 | handle_simple_irq); |
456 | set_exception_vector(i, interrupt[j]); | 456 | set_exception_vector(i, interrupt[j]); |
457 | } | 457 | } |
458 | 458 | ||
459 | /* Mark Timer and IPI IRQs as CPU local */ | 459 | /* Mark Timer and IPI IRQs as CPU local */ |
460 | irq_allocations[TIMER0_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED; | 460 | irq_allocations[TIMER0_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED; |
461 | irq_desc[TIMER0_INTR_VECT].status |= IRQ_PER_CPU; | 461 | irq_set_status_flags(TIMER0_INTR_VECT, IRQ_PER_CPU); |
462 | irq_allocations[IPI_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED; | 462 | irq_allocations[IPI_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED; |
463 | irq_desc[IPI_INTR_VECT].status |= IRQ_PER_CPU; | 463 | irq_set_status_flags(IPI_INTR_VECT, IRQ_PER_CPU); |
464 | 464 | ||
465 | set_exception_vector(0x00, nmi_interrupt); | 465 | set_exception_vector(0x00, nmi_interrupt); |
466 | set_exception_vector(0x30, multiple_interrupt); | 466 | set_exception_vector(0x30, multiple_interrupt); |
diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c index 84fed3b4b079..4c9e3e1ba5d1 100644 --- a/arch/cris/arch-v32/kernel/smp.c +++ b/arch/cris/arch-v32/kernel/smp.c | |||
@@ -26,7 +26,9 @@ | |||
26 | #define FLUSH_ALL (void*)0xffffffff | 26 | #define FLUSH_ALL (void*)0xffffffff |
27 | 27 | ||
28 | /* Vector of locks used for various atomic operations */ | 28 | /* Vector of locks used for various atomic operations */ |
29 | spinlock_t cris_atomic_locks[] = { [0 ... LOCK_COUNT - 1] = SPIN_LOCK_UNLOCKED}; | 29 | spinlock_t cris_atomic_locks[] = { |
30 | [0 ... LOCK_COUNT - 1] = __SPIN_LOCK_UNLOCKED(cris_atomic_locks) | ||
31 | }; | ||
30 | 32 | ||
31 | /* CPU masks */ | 33 | /* CPU masks */ |
32 | cpumask_t phys_cpu_present_map = CPU_MASK_NONE; | 34 | cpumask_t phys_cpu_present_map = CPU_MASK_NONE; |
diff --git a/arch/cris/arch-v32/kernel/time.c b/arch/cris/arch-v32/kernel/time.c index a545211e999d..bb978ede8985 100644 --- a/arch/cris/arch-v32/kernel/time.c +++ b/arch/cris/arch-v32/kernel/time.c | |||
@@ -183,7 +183,7 @@ void handle_watchdog_bite(struct pt_regs *regs) | |||
183 | 183 | ||
184 | /* | 184 | /* |
185 | * timer_interrupt() needs to keep up the real-time clock, | 185 | * timer_interrupt() needs to keep up the real-time clock, |
186 | * as well as call the "do_timer()" routine every clocktick. | 186 | * as well as call the "xtime_update()" routine every clocktick. |
187 | */ | 187 | */ |
188 | extern void cris_do_profile(struct pt_regs *regs); | 188 | extern void cris_do_profile(struct pt_regs *regs); |
189 | 189 | ||
@@ -216,9 +216,7 @@ static inline irqreturn_t timer_interrupt(int irq, void *dev_id) | |||
216 | return IRQ_HANDLED; | 216 | return IRQ_HANDLED; |
217 | 217 | ||
218 | /* Call the real timer interrupt handler */ | 218 | /* Call the real timer interrupt handler */ |
219 | write_seqlock(&xtime_lock); | 219 | xtime_update(1); |
220 | do_timer(1); | ||
221 | write_sequnlock(&xtime_lock); | ||
222 | return IRQ_HANDLED; | 220 | return IRQ_HANDLED; |
223 | } | 221 | } |
224 | 222 | ||
diff --git a/arch/cris/include/asm/bitops.h b/arch/cris/include/asm/bitops.h index 9e69cfb7f134..310e0de67aa6 100644 --- a/arch/cris/include/asm/bitops.h +++ b/arch/cris/include/asm/bitops.h | |||
@@ -154,12 +154,11 @@ static inline int test_and_change_bit(int nr, volatile unsigned long *addr) | |||
154 | #include <asm-generic/bitops/find.h> | 154 | #include <asm-generic/bitops/find.h> |
155 | #include <asm-generic/bitops/lock.h> | 155 | #include <asm-generic/bitops/lock.h> |
156 | 156 | ||
157 | #include <asm-generic/bitops/ext2-non-atomic.h> | 157 | #include <asm-generic/bitops/le.h> |
158 | 158 | ||
159 | #define ext2_set_bit_atomic(l,n,a) test_and_set_bit(n,a) | 159 | #define ext2_set_bit_atomic(l,n,a) test_and_set_bit(n,a) |
160 | #define ext2_clear_bit_atomic(l,n,a) test_and_clear_bit(n,a) | 160 | #define ext2_clear_bit_atomic(l,n,a) test_and_clear_bit(n,a) |
161 | 161 | ||
162 | #include <asm-generic/bitops/minix.h> | ||
163 | #include <asm-generic/bitops/sched.h> | 162 | #include <asm-generic/bitops/sched.h> |
164 | 163 | ||
165 | #endif /* __KERNEL__ */ | 164 | #endif /* __KERNEL__ */ |
diff --git a/arch/cris/include/asm/thread_info.h b/arch/cris/include/asm/thread_info.h index 91776069ca80..29b74a105830 100644 --- a/arch/cris/include/asm/thread_info.h +++ b/arch/cris/include/asm/thread_info.h | |||
@@ -68,7 +68,7 @@ struct thread_info { | |||
68 | #define init_thread_info (init_thread_union.thread_info) | 68 | #define init_thread_info (init_thread_union.thread_info) |
69 | 69 | ||
70 | /* thread information allocation */ | 70 | /* thread information allocation */ |
71 | #define alloc_thread_info(tsk) ((struct thread_info *) __get_free_pages(GFP_KERNEL,1)) | 71 | #define alloc_thread_info(tsk, node) ((struct thread_info *) __get_free_pages(GFP_KERNEL,1)) |
72 | #define free_thread_info(ti) free_pages((unsigned long) (ti), 1) | 72 | #define free_thread_info(ti) free_pages((unsigned long) (ti), 1) |
73 | 73 | ||
74 | #endif /* !__ASSEMBLY__ */ | 74 | #endif /* !__ASSEMBLY__ */ |
diff --git a/arch/cris/include/asm/types.h b/arch/cris/include/asm/types.h index 5790262cbe8a..551a12c0aa01 100644 --- a/arch/cris/include/asm/types.h +++ b/arch/cris/include/asm/types.h | |||
@@ -16,15 +16,6 @@ typedef unsigned short umode_t; | |||
16 | 16 | ||
17 | #define BITS_PER_LONG 32 | 17 | #define BITS_PER_LONG 32 |
18 | 18 | ||
19 | #ifndef __ASSEMBLY__ | ||
20 | |||
21 | /* Dma addresses are 32-bits wide, just like our other addresses. */ | ||
22 | |||
23 | typedef u32 dma_addr_t; | ||
24 | typedef u32 dma64_addr_t; | ||
25 | |||
26 | #endif /* __ASSEMBLY__ */ | ||
27 | |||
28 | #endif /* __KERNEL__ */ | 19 | #endif /* __KERNEL__ */ |
29 | 20 | ||
30 | #endif | 21 | #endif |
diff --git a/arch/cris/kernel/irq.c b/arch/cris/kernel/irq.c index c346952f06dc..788eb2248916 100644 --- a/arch/cris/kernel/irq.c +++ b/arch/cris/kernel/irq.c | |||
@@ -37,45 +37,6 @@ | |||
37 | 37 | ||
38 | #include <asm/io.h> | 38 | #include <asm/io.h> |
39 | 39 | ||
40 | int show_interrupts(struct seq_file *p, void *v) | ||
41 | { | ||
42 | int i = *(loff_t *) v, j; | ||
43 | struct irqaction * action; | ||
44 | unsigned long flags; | ||
45 | |||
46 | if (i == 0) { | ||
47 | seq_printf(p, " "); | ||
48 | for_each_online_cpu(j) | ||
49 | seq_printf(p, "CPU%d ",j); | ||
50 | seq_putc(p, '\n'); | ||
51 | } | ||
52 | |||
53 | if (i < NR_IRQS) { | ||
54 | raw_spin_lock_irqsave(&irq_desc[i].lock, flags); | ||
55 | action = irq_desc[i].action; | ||
56 | if (!action) | ||
57 | goto skip; | ||
58 | seq_printf(p, "%3d: ",i); | ||
59 | #ifndef CONFIG_SMP | ||
60 | seq_printf(p, "%10u ", kstat_irqs(i)); | ||
61 | #else | ||
62 | for_each_online_cpu(j) | ||
63 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, j)); | ||
64 | #endif | ||
65 | seq_printf(p, " %14s", irq_desc[i].irq_data.chip->name); | ||
66 | seq_printf(p, " %s", action->name); | ||
67 | |||
68 | for (action=action->next; action; action = action->next) | ||
69 | seq_printf(p, ", %s", action->name); | ||
70 | |||
71 | seq_putc(p, '\n'); | ||
72 | skip: | ||
73 | raw_spin_unlock_irqrestore(&irq_desc[i].lock, flags); | ||
74 | } | ||
75 | return 0; | ||
76 | } | ||
77 | |||
78 | |||
79 | /* called by the assembler IRQ entry functions defined in irq.h | 40 | /* called by the assembler IRQ entry functions defined in irq.h |
80 | * to dispatch the interrupts to registered handlers | 41 | * to dispatch the interrupts to registered handlers |
81 | * interrupts are disabled upon entry - depending on if the | 42 | * interrupts are disabled upon entry - depending on if the |
diff --git a/arch/cris/kernel/vmlinux.lds.S b/arch/cris/kernel/vmlinux.lds.S index 442218980db0..728bbd9e7d4c 100644 --- a/arch/cris/kernel/vmlinux.lds.S +++ b/arch/cris/kernel/vmlinux.lds.S | |||
@@ -72,11 +72,6 @@ SECTIONS | |||
72 | INIT_TEXT_SECTION(PAGE_SIZE) | 72 | INIT_TEXT_SECTION(PAGE_SIZE) |
73 | .init.data : { INIT_DATA } | 73 | .init.data : { INIT_DATA } |
74 | .init.setup : { INIT_SETUP(16) } | 74 | .init.setup : { INIT_SETUP(16) } |
75 | #ifdef CONFIG_ETRAX_ARCH_V32 | ||
76 | __start___param = .; | ||
77 | __param : { *(__param) } | ||
78 | __stop___param = .; | ||
79 | #endif | ||
80 | .initcall.init : { | 75 | .initcall.init : { |
81 | INIT_CALLS | 76 | INIT_CALLS |
82 | } | 77 | } |
@@ -107,7 +102,7 @@ SECTIONS | |||
107 | #endif | 102 | #endif |
108 | __vmlinux_end = .; /* Last address of the physical file. */ | 103 | __vmlinux_end = .; /* Last address of the physical file. */ |
109 | #ifdef CONFIG_ETRAX_ARCH_V32 | 104 | #ifdef CONFIG_ETRAX_ARCH_V32 |
110 | PERCPU(PAGE_SIZE) | 105 | PERCPU(32, PAGE_SIZE) |
111 | 106 | ||
112 | .init.ramfs : { | 107 | .init.ramfs : { |
113 | INIT_RAM_FS | 108 | INIT_RAM_FS |