[patch 47/50] genirq: ARM: Convert ixp23xx to generic irq handling

From: Ingo Molnar
Date: Tue May 16 2006 - 20:22:14 EST


From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

Fixup the conversion to generic irq subsystem.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
---
arch/arm/mach-ixp23xx/core.c | 6 +++---
arch/arm/mach-ixp23xx/ixdp2351.c | 18 +++++++++---------
2 files changed, 12 insertions(+), 12 deletions(-)

Index: linux-genirq.q/arch/arm/mach-ixp23xx/core.c
===================================================================
--- linux-genirq.q.orig/arch/arm/mach-ixp23xx/core.c
+++ linux-genirq.q/arch/arm/mach-ixp23xx/core.c
@@ -248,7 +248,7 @@ static void pci_handler(unsigned int irq

pci_interrupt = *IXP23XX_PCI_XSCALE_INT_STATUS;

- desc->chip->ack(irq);
+ desc->handler->ack(irq);

/* See which PCI_INTA, or PCI_INTB interrupted */
if (pci_interrupt & (1 << 26)) {
@@ -260,9 +260,9 @@ static void pci_handler(unsigned int irq
}

int_desc = irq_desc + irqno;
- int_desc->handle(irqno, int_desc, regs);
+ desc_handle_irq(irqno, int_desc, regs);

- desc->chip->unmask(irq);
+ desc->handler->unmask(irq);
}

static struct irqchip ixp23xx_pci_irq_chip = {
Index: linux-genirq.q/arch/arm/mach-ixp23xx/ixdp2351.c
===================================================================
--- linux-genirq.q.orig/arch/arm/mach-ixp23xx/ixdp2351.c
+++ linux-genirq.q/arch/arm/mach-ixp23xx/ixdp2351.c
@@ -20,6 +20,7 @@
#include <linux/spinlock.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
+#include <linux/irq.h>
#include <linux/serial.h>
#include <linux/tty.h>
#include <linux/bitops.h>
@@ -37,7 +38,6 @@
#include <asm/memory.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
-#include <asm/irq.h>
#include <asm/system.h>
#include <asm/tlbflush.h>
#include <asm/pgtable.h>
@@ -67,7 +67,7 @@ static void ixdp2351_inta_handler(unsign
*IXDP2351_CPLD_INTA_STAT_REG & IXDP2351_INTA_IRQ_VALID;
int i;

- desc->chip->mask(irq);
+ desc->handler->mask(irq);

for (i = 0; i < IXDP2351_INTA_IRQ_NUM; i++) {
if (ex_interrupt & (1 << i)) {
@@ -75,11 +75,11 @@ static void ixdp2351_inta_handler(unsign
int cpld_irq =
IXP23XX_MACH_IRQ(IXDP2351_INTA_IRQ_BASE + i);
cpld_desc = irq_desc + cpld_irq;
- cpld_desc->handle(cpld_irq, cpld_desc, regs);
+ desc_handle_irq(cpld_irq, cpld_desc, regs);
}
}

- desc->chip->unmask(irq);
+ desc->handler->unmask(irq);
}

static struct irqchip ixdp2351_inta_chip = {
@@ -104,7 +104,7 @@ static void ixdp2351_intb_handler(unsign
*IXDP2351_CPLD_INTB_STAT_REG & IXDP2351_INTB_IRQ_VALID;
int i;

- desc->chip->ack(irq);
+ desc->handler->ack(irq);

for (i = 0; i < IXDP2351_INTB_IRQ_NUM; i++) {
if (ex_interrupt & (1 << i)) {
@@ -112,11 +112,11 @@ static void ixdp2351_intb_handler(unsign
int cpld_irq =
IXP23XX_MACH_IRQ(IXDP2351_INTB_IRQ_BASE + i);
cpld_desc = irq_desc + cpld_irq;
- cpld_desc->handle(cpld_irq, cpld_desc, regs);
+ desc_handle_irq(cpld_irq, cpld_desc, regs);
}
}

- desc->chip->unmask(irq);
+ desc->handler->unmask(irq);
}

static struct irqchip ixdp2351_intb_chip = {
@@ -159,8 +159,8 @@ void ixdp2351_init_irq(void)
}
}

- set_irq_chained_handler(IRQ_IXP23XX_INTA, &ixdp2351_inta_handler);
- set_irq_chained_handler(IRQ_IXP23XX_INTB, &ixdp2351_intb_handler);
+ set_irq_chained_handler(IRQ_IXP23XX_INTA, ixdp2351_inta_handler);
+ set_irq_chained_handler(IRQ_IXP23XX_INTB, ixdp2351_intb_handler);
}

/*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/