summaryrefslogtreecommitdiff
path: root/arch/mips/sibyte/bcm1480/irq.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-07-13 16:57:04 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-07-13 16:57:04 -0700
commitab6cf0d0cb96417ef65cc2c2120c0e879edf7a4a (patch)
tree97e85188397967013783aba57907fd85bc63cbf2 /arch/mips/sibyte/bcm1480/irq.c
parent0d10e47f9635ecafe5a9dc6e10cb056a87a4daa2 (diff)
parentf4dee85e2c6a7d7adf7ea4d6d3053a41c78175b7 (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: (53 commits) [MIPS] sparsemem: fix crash in show_mem [MIPS] vr41xx: Update workpad setup function [MIPS] vr41xx: Update e55 setup function [MIPS] vr41xx: Removed old v2.4 VRC4173 driver [MIPS] vr41xx: Move IRQ numbers to asm-mips/vr41xx/irq.h [MIPS] MIPSsim: Build fix, rename sim_timer_setup -> plat_timer_setup. [MIPS] Remove unused code. [MIPS] IP22 Fix brown paper bag in RTC code. [MIPS] Atlas, Malta, SEAD: Don't disable interrupts in mips_time_init(). [MIPS] Replace board_timer_setup function pointer by plat_timer_setup. [MIPS] Nuke redeclarations of board_time_init. [MIPS] Remove redeclarations of setup_irq(). [MIPS] Nuke redeclarations of board_timer_setup. [MIPS] Print out TLB handler assembly for debugging. [MIPS] SMTC: Reformat to Linux style. [MIPS] MIPSsim: Delete redeclaration of ll_local_timer_interrupt. [MIPS] IP27: Reformatting. [MIPS] IP27: Invoke setup_irq for timer interrupt so proc stats will be shown. [MIPS] IP27: irq_chip startup method returns unsigned int. [MIPS] IP27: struct irq_desc member handler was renamed to chip. ...
Diffstat (limited to 'arch/mips/sibyte/bcm1480/irq.c')
-rw-r--r--arch/mips/sibyte/bcm1480/irq.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 29d3bbb5847d..ed325f0ab28a 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -83,7 +83,7 @@ extern char sb1250_duart_present[];
#endif
#endif
-static struct hw_interrupt_type bcm1480_irq_type = {
+static struct irq_chip bcm1480_irq_type = {
.typename = "BCM1480-IMR",
.startup = startup_bcm1480_irq,
.shutdown = shutdown_bcm1480_irq,
@@ -140,7 +140,7 @@ static void bcm1480_set_affinity(unsigned int irq, cpumask_t mask)
{
int i = 0, old_cpu, cpu, int_on, k;
u64 cur_ints;
- irq_desc_t *desc = irq_desc + irq;
+ struct irq_desc *desc = irq_desc + irq;
unsigned long flags;
unsigned int irq_dirty;
@@ -278,7 +278,7 @@ void __init init_bcm1480_irqs(void)
irq_desc[i].chip = &bcm1480_irq_type;
bcm1480_irq_owner[i] = 0;
} else {
- irq_desc[i].chip = &no_irq_type;
+ irq_desc[i].chip = &no_irq_chip;
}
}
}
@@ -301,7 +301,7 @@ static struct irqaction bcm1480_dummy_action = {
int bcm1480_steal_irq(int irq)
{
- irq_desc_t *desc = irq_desc + irq;
+ struct irq_desc *desc = irq_desc + irq;
unsigned long flags;
int retval = 0;
@@ -502,22 +502,23 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
#ifdef CONFIG_SIBYTE_BCM1480_PROF
if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */
sbprof_cpu_intr(exception_epc(regs));
+ else
#endif
if (pending & CAUSEF_IP4)
bcm1480_timer_interrupt(regs);
#ifdef CONFIG_SMP
- if (pending & CAUSEF_IP3)
+ else if (pending & CAUSEF_IP3)
bcm1480_mailbox_interrupt(regs);
#endif
#ifdef CONFIG_KGDB
- if (pending & CAUSEF_IP6)
+ else if (pending & CAUSEF_IP6)
bcm1480_kgdb_interrupt(regs); /* KGDB (uart 1) */
#endif
- if (pending & CAUSEF_IP2) {
+ else if (pending & CAUSEF_IP2) {
unsigned long long mask_h, mask_l;
unsigned long base;
@@ -533,7 +534,7 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
mask_l = __raw_readq(
IOADDR(base + R_BCM1480_IMR_INTERRUPT_STATUS_BASE_L));
- if (!mask_h) {
+ if (mask_h) {
if (mask_h ^ 1)
do_IRQ(63 - dclz(mask_h), regs);
else