aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/sgi-ip27/ip27-irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/sgi-ip27/ip27-irq.c')
-rw-r--r--arch/mips/sgi-ip27/ip27-irq.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c
index 24a85372284f..f01ba1f90770 100644
--- a/arch/mips/sgi-ip27/ip27-irq.c
+++ b/arch/mips/sgi-ip27/ip27-irq.c
@@ -30,7 +30,6 @@
30#include <asm/mipsregs.h> 30#include <asm/mipsregs.h>
31#include <asm/system.h> 31#include <asm/system.h>
32 32
33#include <asm/ptrace.h>
34#include <asm/processor.h> 33#include <asm/processor.h>
35#include <asm/pci/bridge.h> 34#include <asm/pci/bridge.h>
36#include <asm/sn/addrs.h> 35#include <asm/sn/addrs.h>
@@ -129,7 +128,7 @@ static int ms1bit(unsigned long x)
129 * Kanoj 05.13.00 128 * Kanoj 05.13.00
130 */ 129 */
131 130
132static void ip27_do_irq_mask0(struct pt_regs *regs) 131static void ip27_do_irq_mask0(void)
133{ 132{
134 int irq, swlevel; 133 int irq, swlevel;
135 hubreg_t pend0, mask0; 134 hubreg_t pend0, mask0;
@@ -164,13 +163,13 @@ static void ip27_do_irq_mask0(struct pt_regs *regs)
164 struct slice_data *si = cpu_data[cpu].data; 163 struct slice_data *si = cpu_data[cpu].data;
165 164
166 irq = si->level_to_irq[swlevel]; 165 irq = si->level_to_irq[swlevel];
167 do_IRQ(irq, regs); 166 do_IRQ(irq);
168 } 167 }
169 168
170 LOCAL_HUB_L(PI_INT_PEND0); 169 LOCAL_HUB_L(PI_INT_PEND0);
171} 170}
172 171
173static void ip27_do_irq_mask1(struct pt_regs *regs) 172static void ip27_do_irq_mask1(void)
174{ 173{
175 int irq, swlevel; 174 int irq, swlevel;
176 hubreg_t pend1, mask1; 175 hubreg_t pend1, mask1;
@@ -190,17 +189,17 @@ static void ip27_do_irq_mask1(struct pt_regs *regs)
190 /* "map" swlevel to irq */ 189 /* "map" swlevel to irq */
191 irq = si->level_to_irq[swlevel]; 190 irq = si->level_to_irq[swlevel];
192 LOCAL_HUB_CLR_INTR(swlevel); 191 LOCAL_HUB_CLR_INTR(swlevel);
193 do_IRQ(irq, regs); 192 do_IRQ(irq);
194 193
195 LOCAL_HUB_L(PI_INT_PEND1); 194 LOCAL_HUB_L(PI_INT_PEND1);
196} 195}
197 196
198static void ip27_prof_timer(struct pt_regs *regs) 197static void ip27_prof_timer(void)
199{ 198{
200 panic("CPU %d got a profiling interrupt", smp_processor_id()); 199 panic("CPU %d got a profiling interrupt", smp_processor_id());
201} 200}
202 201
203static void ip27_hub_error(struct pt_regs *regs) 202static void ip27_hub_error(void)
204{ 203{
205 panic("CPU %d got a hub error interrupt", smp_processor_id()); 204 panic("CPU %d got a hub error interrupt", smp_processor_id());
206} 205}
@@ -418,22 +417,22 @@ int __devinit request_bridge_irq(struct bridge_controller *bc)
418 return irq; 417 return irq;
419} 418}
420 419
421extern void ip27_rt_timer_interrupt(struct pt_regs *regs); 420extern void ip27_rt_timer_interrupt(void);
422 421
423asmlinkage void plat_irq_dispatch(struct pt_regs *regs) 422asmlinkage void plat_irq_dispatch(void)
424{ 423{
425 unsigned long pending = read_c0_cause() & read_c0_status(); 424 unsigned long pending = read_c0_cause() & read_c0_status();
426 425
427 if (pending & CAUSEF_IP4) 426 if (pending & CAUSEF_IP4)
428 ip27_rt_timer_interrupt(regs); 427 ip27_rt_timer_interrupt();
429 else if (pending & CAUSEF_IP2) /* PI_INT_PEND_0 or CC_PEND_{A|B} */ 428 else if (pending & CAUSEF_IP2) /* PI_INT_PEND_0 or CC_PEND_{A|B} */
430 ip27_do_irq_mask0(regs); 429 ip27_do_irq_mask0();
431 else if (pending & CAUSEF_IP3) /* PI_INT_PEND_1 */ 430 else if (pending & CAUSEF_IP3) /* PI_INT_PEND_1 */
432 ip27_do_irq_mask1(regs); 431 ip27_do_irq_mask1();
433 else if (pending & CAUSEF_IP5) 432 else if (pending & CAUSEF_IP5)
434 ip27_prof_timer(regs); 433 ip27_prof_timer();
435 else if (pending & CAUSEF_IP6) 434 else if (pending & CAUSEF_IP6)
436 ip27_hub_error(regs); 435 ip27_hub_error();
437} 436}
438 437
439void __init arch_init_irq(void) 438void __init arch_init_irq(void)