diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-15 19:08:49 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-15 19:08:49 -0500 |
commit | 40787d0099676c9923e31fbdb90422d5c97cdcd5 (patch) | |
tree | 029b96d58712e390878795e76b46e8598601daeb /arch/mips/lasat/interrupt.c | |
parent | 3c72f526dfe23f945ad034ae5a88649980d27a50 (diff) | |
parent | 72e510654c814e2c5c9227e95ae02ea77e015ce4 (diff) |
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
[MIPS] N32 needs to use the compat version of sys_nfsservctl.
[MIPS] irq_cpu: use handle_percpu_irq handler to avoid dropping interrupts.
[MIPS] Sibyte: Fix name of clocksource.
[MIPS] SNI: s/achknowledge/acknowledge/
[MIPS] Makefile: Fix canonical system names
[MIPS] vpe: handle halting TCs in an errata safe way.
[MIPS] Sibyte: Stop timers before programming next even.
[MIPS] Sibyte: Increase minimum oneshot timer interval to two ticks.
[MIPS] Lasat: Fix overlap of interrupt number ranges.
[MIPS] SNI PCIT CPLUS: workaround for b0rked irq wiring of onboard PCI bus 1
[MIPS] Fix shadow register support.
[MIPS] Change get_cycles to always return 0.
[MIPS] Fix typo in R3000 TRACE_IRQFLAGS code
[MIPS] Sibyte: Replace use of removed IO_SPACE_BASE with IOADDR.
[MIPS] iounmap if in vr41xx_pciu_init() pci clock is over 33MHz
[MIPS] BCM1480: Remove duplicate acknowledge of timer interrupt.
[MIPS] Sibyte: pin timer interrupt to their cores.
[MIPS] Qemu: Add early printk, your friend in a cold night.
[MIPS] Convert reference to mem_map to pfn_to_page().
[MIPS] Sibyte: resurrect old cache hack.
Diffstat (limited to 'arch/mips/lasat/interrupt.c')
-rw-r--r-- | arch/mips/lasat/interrupt.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c index ba9692be3564..cfeab669782f 100644 --- a/arch/mips/lasat/interrupt.c +++ b/arch/mips/lasat/interrupt.c | |||
@@ -19,17 +19,14 @@ | |||
19 | * Lasat boards. | 19 | * Lasat boards. |
20 | */ | 20 | */ |
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/irq.h> | ||
23 | #include <linux/sched.h> | ||
24 | #include <linux/slab.h> | ||
25 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
26 | #include <linux/kernel_stat.h> | 23 | #include <linux/irq.h> |
27 | 24 | ||
28 | #include <asm/bootinfo.h> | 25 | #include <asm/bootinfo.h> |
29 | #include <asm/irq_cpu.h> | 26 | #include <asm/irq_cpu.h> |
30 | #include <asm/lasat/lasatint.h> | 27 | #include <asm/lasat/lasatint.h> |
31 | #include <asm/time.h> | 28 | |
32 | #include <asm/gdb-stub.h> | 29 | #include <irq.h> |
33 | 30 | ||
34 | static volatile int *lasat_int_status; | 31 | static volatile int *lasat_int_status; |
35 | static volatile int *lasat_int_mask; | 32 | static volatile int *lasat_int_mask; |
@@ -97,12 +94,18 @@ asmlinkage void plat_irq_dispatch(void) | |||
97 | 94 | ||
98 | /* if int_status == 0, then the interrupt has already been cleared */ | 95 | /* if int_status == 0, then the interrupt has already been cleared */ |
99 | if (int_status) { | 96 | if (int_status) { |
100 | irq = LASATINT_BASE + ls1bit32(int_status); | 97 | irq = LASAT_IRQ_BASE + ls1bit32(int_status); |
101 | 98 | ||
102 | do_IRQ(irq); | 99 | do_IRQ(irq); |
103 | } | 100 | } |
104 | } | 101 | } |
105 | 102 | ||
103 | static struct irqaction cascade = { | ||
104 | .handler = no_action, | ||
105 | .mask = CPU_MASK_NONE, | ||
106 | .name = "cascade", | ||
107 | }; | ||
108 | |||
106 | void __init arch_init_irq(void) | 109 | void __init arch_init_irq(void) |
107 | { | 110 | { |
108 | int i; | 111 | int i; |
@@ -127,6 +130,9 @@ void __init arch_init_irq(void) | |||
127 | } | 130 | } |
128 | 131 | ||
129 | mips_cpu_irq_init(); | 132 | mips_cpu_irq_init(); |
130 | for (i = LASATINT_BASE; i <= LASATINT_END; i++) | 133 | |
134 | for (i = LASAT_IRQ_BASE; i <= LASAT_IRQ_END; i++) | ||
131 | set_irq_chip_and_handler(i, &lasat_irq_type, handle_level_irq); | 135 | set_irq_chip_and_handler(i, &lasat_irq_type, handle_level_irq); |
136 | |||
137 | setup_irq(LASAT_CASCADE_IRQ, &cascade); | ||
132 | } | 138 | } |