So could revert back to use irq_desc[] for other arch except x86
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
---
arch/alpha/kernel/irq.c | 21 +--
arch/alpha/kernel/irq_alpha.c | 7 -
arch/alpha/kernel/irq_i8259.c | 8 -
arch/alpha/kernel/irq_pyxis.c | 9 -
arch/alpha/kernel/irq_srm.c | 9 -
arch/alpha/kernel/sys_alcor.c | 9 -
arch/alpha/kernel/sys_cabriolet.c | 8 -
arch/alpha/kernel/sys_dp264.c | 9 -
arch/alpha/kernel/sys_eb64p.c | 8 -
arch/alpha/kernel/sys_eiger.c | 7 -
arch/alpha/kernel/sys_jensen.c | 50 ++++-----
arch/alpha/kernel/sys_marvel.c | 20 +--
arch/alpha/kernel/sys_mikasa.c | 8 -
arch/alpha/kernel/sys_noritake.c | 8 -
arch/alpha/kernel/sys_rawhide.c | 8 -
arch/alpha/kernel/sys_rx164.c | 8 -
arch/alpha/kernel/sys_sable.c | 8 -
arch/alpha/kernel/sys_takara.c | 8 -
arch/alpha/kernel/sys_titan.c | 8 -
arch/alpha/kernel/sys_wildfire.c | 19 +--
arch/arm/common/gic.c | 2
arch/arm/common/it8152.c | 2
arch/arm/common/locomo.c | 16 +--
arch/arm/common/sa1111.c | 4
arch/arm/kernel/ecard.c | 4
arch/arm/kernel/irq.c | 8 -
arch/arm/mach-at91/gpio.c | 4
arch/arm/mach-davinci/gpio.c | 13 --
arch/arm/mach-ep93xx/core.c | 12 +-
arch/arm/mach-footbridge/isa-irq.c | 2
arch/arm/mach-h720x/common.c | 2
arch/arm/mach-h720x/cpu-h7202.c | 2
arch/arm/mach-imx/irq.c | 2
arch/arm/mach-integrator/integrator_cp.c | 2
arch/arm/mach-iop13xx/msi.c | 2
arch/arm/mach-ixp2000/core.c | 4
arch/arm/mach-ixp2000/ixdp2x00.c | 2
arch/arm/mach-ixp2000/ixdp2x01.c | 2
arch/arm/mach-ixp23xx/core.c | 2
arch/arm/mach-ixp23xx/ixdp2351.c | 4
arch/arm/mach-lh7a40x/common.h | 2
arch/arm/mach-netx/generic.c | 2
arch/arm/mach-ns9xxx/board-a9m9750dev.c | 2
arch/arm/mach-omap1/fpga.c | 2
arch/arm/mach-orion5x/irq.c | 12 +-
arch/arm/mach-pxa/gpio.c | 2
arch/arm/mach-pxa/lpd270.c | 2
arch/arm/mach-pxa/lubbock.c | 2
arch/arm/mach-pxa/mainstone.c | 2
arch/arm/mach-pxa/pcm990-baseboard.c | 2
arch/arm/mach-s3c2410/bast-irq.c | 6 -
arch/arm/mach-s3c2412/irq.c | 4
arch/arm/mach-s3c2440/irq.c | 4
arch/arm/mach-s3c2443/irq.c | 4
arch/arm/mach-sa1100/h3600.c | 14 +-
arch/arm/mach-sa1100/irq.c | 2
arch/arm/mach-sa1100/neponset.c | 6 -
arch/arm/mach-versatile/core.c | 2
arch/arm/oprofile/op_model_mpcore.c | 2
arch/arm/plat-mxc/gpio.c | 7 -
arch/arm/plat-omap/gpio.c | 12 --
arch/arm/plat-orion/irq.c | 2
arch/arm/plat-s3c24xx/irq.c | 14 +-
arch/arm/plat-s3c24xx/s3c244x-irq.c | 4
arch/avr32/mach-at32ap/extint.c | 7 -
arch/avr32/mach-at32ap/intc.c | 2
arch/avr32/mach-at32ap/pio.c | 2
arch/blackfin/kernel/irqchip.c | 12 --
arch/blackfin/kernel/traps.c | 8 -
arch/blackfin/mach-bf537/boards/cm_bf537.c | 2
arch/blackfin/mach-bf537/boards/stamp.c | 2
arch/blackfin/mach-bf561/boards/cm_bf561.c | 2
arch/blackfin/mach-common/ints-priority.c | 8 -
arch/cris/arch-v10/kernel/irq.c | 2
arch/cris/arch-v32/kernel/irq.c | 6 -
arch/cris/kernel/irq.c | 12 --
arch/frv/kernel/irq.c | 10 -
arch/h8300/kernel/irq.c | 24 +---
arch/ia64/hp/sim/hpsim_irq.c | 2
arch/ia64/include/asm/hw_irq.h | 2
arch/ia64/kernel/iosapic.c | 19 +--
arch/ia64/kernel/irq.c | 16 +--
arch/ia64/kernel/irq_ia64.c | 12 +-
arch/ia64/kernel/mca.c | 2
arch/ia64/kernel/msi_ia64.c | 4
arch/ia64/kernel/smpboot.c | 2
arch/ia64/sn/kernel/irq.c | 11 --
arch/ia64/sn/kernel/msi_sn.c | 4
arch/m32r/kernel/irq.c | 12 --
arch/m32r/platforms/m32104ut/setup.c | 37 +++---
arch/m32r/platforms/m32700ut/setup.c | 133 +++++++++++-------------
arch/m32r/platforms/mappi/setup.c | 84 ++++++---------
arch/m32r/platforms/mappi2/setup.c | 103 +++++++------------
arch/m32r/platforms/mappi3/setup.c | 103 +++++++------------
arch/m32r/platforms/oaks32r/setup.c | 62 ++++-------
arch/m32r/platforms/opsput/setup.c | 149 +++++++++++-----------------
arch/m32r/platforms/usrv/setup.c | 92 ++++++-----------
arch/m68knommu/kernel/irq.c | 18 +--
arch/mips/au1000/common/irq.c | 2
arch/mips/dec/ioasic-irq.c | 2
arch/mips/emma2rh/markeins/irq_markeins.c | 2
arch/mips/kernel/irq-gic.c | 2
arch/mips/kernel/irq-msc01.c | 2
arch/mips/kernel/irq.c | 10 -
arch/mips/kernel/smtc.c | 2
arch/mips/mti-malta/malta-smtc.c | 2
arch/mips/sgi-ip22/ip22-int.c | 2
arch/mips/sgi-ip22/ip22-time.c | 2
arch/mips/sgi-ip32/ip32-irq.c | 10 -
arch/mips/sibyte/bcm1480/irq.c | 5
arch/mips/sibyte/bcm1480/smp.c | 2
arch/mips/sibyte/sb1250/irq.c | 5
arch/mips/sibyte/sb1250/smp.c | 2
arch/mips/sni/a20r.c | 2
arch/mips/sni/pcimt.c | 2
arch/mips/sni/pcit.c | 2
arch/mips/sni/rm200.c | 2
arch/mips/vr41xx/common/icu.c | 44 ++++----
arch/mips/vr41xx/common/irq.c | 2
arch/mn10300/kernel/irq.c | 13 --
arch/parisc/kernel/irq.c | 41 +++----
arch/powerpc/include/asm/irq.h | 2
arch/powerpc/kernel/crash.c | 2
arch/powerpc/kernel/irq.c | 15 +-
arch/powerpc/platforms/8xx/m8xx_setup.c | 2
arch/powerpc/platforms/powermac/pic.c | 4
arch/powerpc/platforms/pseries/eeh_driver.c | 2
arch/powerpc/platforms/pseries/xics.c | 4
arch/powerpc/sysdev/cpm2_pic.c | 5
arch/powerpc/sysdev/mpic.c | 16 +--
arch/powerpc/sysdev/qe_lib/qe_ic.c | 2
arch/sh/boards/mach-cayman/irq.c | 4
arch/sh/boards/mach-dreamcast/irq.c | 2
arch/sh/boards/mach-dreamcast/setup.c | 2
arch/sh/boards/mach-microdev/irq.c | 4
arch/sh/boards/mach-se/7206/irq.c | 2
arch/sh/boards/mach-se/7343/irq.c | 2
arch/sh/boards/mach-se/7722/irq.c | 2
arch/sh/boards/mach-systemh/irq.c | 4
arch/sh/cchips/hd6446x/hd64461.c | 4
arch/sh/cchips/hd6446x/hd64465/setup.c | 4
arch/sh/kernel/cpu/irq/imask.c | 4
arch/sh/kernel/cpu/irq/intc-sh5.c | 4
arch/sh/kernel/irq.c | 12 --
arch/sparc64/kernel/irq.c | 41 +++----
arch/sparc64/kernel/pci_msi.c | 2
arch/sparc64/kernel/time.c | 2
arch/um/kernel/irq.c | 31 ++---
arch/x86/kernel/io_apic.c | 32 +++---
arch/x86/kernel/irq_32.c | 4
arch/x86/kernel/irq_64.c | 4
arch/x86/kernel/irqinit_32.c | 2
arch/x86/kernel/irqinit_64.c | 2
arch/x86/kernel/visws_quirks.c | 8 -
arch/x86/mach-voyager/voyager_smp.c | 4
arch/xtensa/kernel/irq.c | 12 --
drivers/char/random.c | 4
drivers/gpio/gpiolib.c | 2
drivers/mfd/asic3.c | 4
drivers/mfd/htc-egpio.c | 2
drivers/parisc/dino.c | 6 -
drivers/parisc/eisa.c | 6 -
drivers/parisc/gsc.c | 8 -
drivers/parisc/iosapic.c | 2
drivers/parisc/superio.c | 4
drivers/pci/intr_remapping.c | 4
drivers/pcmcia/hd64465_ss.c | 4
drivers/xen/events.c | 6 -
include/asm-mips/irq.h | 2
include/linux/irq.h | 26 ++--
kernel/irq/autoprobe.c | 10 -
kernel/irq/chip.c | 28 ++---
kernel/irq/handle.c | 24 ++--
kernel/irq/manage.c | 26 ++--
kernel/irq/migration.c | 2
kernel/irq/proc.c | 12 +-
kernel/irq/resend.c | 2
kernel/irq/spurious.c | 4
178 files changed, 877 insertions(+), 1129 deletions(-)
Index: linux-2.6/arch/alpha/kernel/irq.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/irq.c
+++ linux-2.6/arch/alpha/kernel/irq.c
@@ -46,19 +46,16 @@ int irq_select_affinity(unsigned int irq
{
static int last_cpu;
int cpu = last_cpu + 1;
- struct irq_desc *desc;
- desc = irq_desc(irq);
-
- if (!desc->chip->set_affinity || irq_user_affinity[irq])
+ if (!irq_desc[irq].chip->set_affinity || irq_user_affinity[irq])
return 1;
while (!cpu_possible(cpu) || !cpu_isset(cpu, irq_default_affinity))
cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
last_cpu = cpu;
- desc->affinity = cpumask_of_cpu(cpu);
- desc->chip->set_affinity(irq, cpumask_of_cpu(cpu));
+ irq_desc[irq].affinity = cpumask_of_cpu(cpu);
+ irq_desc[irq].chip->set_affinity(irq, cpumask_of_cpu(cpu));
return 0;
}
#endif /* CONFIG_SMP */
@@ -83,10 +80,8 @@ show_interrupts(struct seq_file *p, void
#endif
if (irq < ACTUAL_NR_IRQS) {
- struct irq_desc *desc = irq_desc(irq);
-
- spin_lock_irqsave(&desc->lock, flags);
- action = desc->action;
+ spin_lock_irqsave(&irq_desc[irq].lock, flags);
+ action = irq_desc[irq].action;
if (!action)
goto unlock;
seq_printf(p, "%3d: ", irq);
@@ -96,7 +91,7 @@ show_interrupts(struct seq_file *p, void
for_each_online_cpu(j)
seq_printf(p, "%10u ", kstat_irqs_cpu(irq, j));
#endif
- seq_printf(p, " %14s", desc->chip->typename);
+ seq_printf(p, " %14s", irq_desc[irq].chip->typename);
seq_printf(p, " %c%s",
(action->flags & IRQF_DISABLED)?'+':' ',
action->name);
@@ -109,7 +104,7 @@ show_interrupts(struct seq_file *p, void
seq_putc(p, '\n');
unlock:
- spin_unlock_irqrestore(&desc->lock, flags);
+ spin_unlock_irqrestore(&irq_desc[irq].lock, flags);
} else if (irq == ACTUAL_NR_IRQS) {
#ifdef CONFIG_SMP
seq_puts(p, "IPI: ");
@@ -161,6 +156,6 @@ handle_irq(int irq)
* at IPL 0.
*/
local_irq_disable();
- __do_IRQ(irq, irq_desc(irq));
+ __do_IRQ(irq, &irq_desc[irq]);
irq_exit();
}
Index: linux-2.6/arch/alpha/kernel/irq_alpha.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/irq_alpha.c
+++ linux-2.6/arch/alpha/kernel/irq_alpha.c
@@ -64,7 +64,7 @@ do_entInt(unsigned long type, unsigned l
smp_percpu_timer_interrupt(regs);
cpu = smp_processor_id();
if (cpu != boot_cpuid) {
- irq_desc(RTC_IRQ)->kstat_irqs[cpu]++;
+ irq_desc[RTC_IRQ].kstat_irqs[cpu]++;
} else {
handle_irq(RTC_IRQ);
}
@@ -240,9 +240,8 @@ static struct hw_interrupt_type rtc_irq_
void __init
init_rtc_irq(void)
{
- struct irq_desc *desc = irq_desc(RTC_IRQ);
- desc->status = IRQ_DISABLED;
- desc->chip = &rtc_irq_type;
+ irq_desc[RTC_IRQ].status = IRQ_DISABLED;
+ irq_desc[RTC_IRQ].chip = &rtc_irq_type;
setup_irq(RTC_IRQ, &timer_irqaction);
}
Index: linux-2.6/arch/alpha/kernel/irq_i8259.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/irq_i8259.c
+++ linux-2.6/arch/alpha/kernel/irq_i8259.c
@@ -79,7 +79,7 @@ i8259a_startup_irq(unsigned int irq)
void
i8259a_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
i8259a_enable_irq(irq);
}
@@ -107,10 +107,8 @@ init_i8259a_irqs(void)
outb(0xff, 0xA1); /* mask all of 8259A-2 */
for (i = 0; i < 16; i++) {
- struct irq_desc *desc;
- desc = irq_desc(i);
- desc->status = IRQ_DISABLED;
- desc->chip = &i8259a_irq_type;
+ irq_desc[i].status = IRQ_DISABLED;
+ irq_desc[i].chip = &i8259a_irq_type;
}
setup_irq(2, &cascade);
Index: linux-2.6/arch/alpha/kernel/irq_pyxis.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/irq_pyxis.c
+++ linux-2.6/arch/alpha/kernel/irq_pyxis.c
@@ -50,7 +50,7 @@ pyxis_startup_irq(unsigned int irq)
static void
pyxis_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
pyxis_enable_irq(irq);
}
@@ -117,13 +117,10 @@ init_pyxis_irqs(unsigned long ignore_mas
*(vuip) CIA_IACK_SC;
for (i = 16; i < 48; ++i) {
- struct irq_desc *desc;
-
if ((ignore_mask >> i) & 1)
continue;
- desc = irq_desc(i);
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &pyxis_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &pyxis_irq_type;
}
setup_irq(16+7, &isa_cascade_irqaction);
Index: linux-2.6/arch/alpha/kernel/irq_srm.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/irq_srm.c
+++ linux-2.6/arch/alpha/kernel/irq_srm.c
@@ -43,7 +43,7 @@ srm_startup_irq(unsigned int irq)
static void
srm_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
srm_enable_irq(irq);
}
@@ -64,13 +64,10 @@ init_srm_irqs(long max, unsigned long ig
long i;
for (i = 16; i < max; ++i) {
- struct irq_desc *desc;
-
if (i < 64 && ((ignore_mask >> i) & 1))
continue;
- desc = irq_desc(i);
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &srm_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &srm_irq_type;
}
}
Index: linux-2.6/arch/alpha/kernel/sys_alcor.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_alcor.c
+++ linux-2.6/arch/alpha/kernel/sys_alcor.c
@@ -85,7 +85,7 @@ alcor_isa_mask_and_ack_irq(unsigned int
static void
alcor_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
alcor_enable_irq(irq);
}
@@ -137,16 +137,13 @@ alcor_init_irq(void)
*(vuip)GRU_INT_CLEAR = 0; mb(); /* all clear */
for (i = 16; i < 48; ++i) {
- struct irq_desc *desc;
-
/* On Alcor, at least, lines 20..30 are not connected
and can generate spurious interrupts if we turn them
on while IRQ probing. */
if (i >= 16+20 && i <= 16+30)
continue;
- desc = irq_desc(i);
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &alcor_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &alcor_irq_type;
}
i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq;
Index: linux-2.6/arch/alpha/kernel/sys_cabriolet.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_cabriolet.c
+++ linux-2.6/arch/alpha/kernel/sys_cabriolet.c
@@ -67,7 +67,7 @@ cabriolet_startup_irq(unsigned int irq)
static void
cabriolet_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
cabriolet_enable_irq(irq);
}
@@ -122,10 +122,8 @@ common_init_irq(void (*srm_dev_int)(unsi
outb(0xff, 0x806);
for (i = 16; i < 35; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &cabriolet_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &cabriolet_irq_type;
}
}
Index: linux-2.6/arch/alpha/kernel/sys_dp264.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_dp264.c
+++ linux-2.6/arch/alpha/kernel/sys_dp264.c
@@ -125,7 +125,7 @@ dp264_startup_irq(unsigned int irq)
static void
dp264_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
dp264_enable_irq(irq);
}
@@ -157,7 +157,7 @@ clipper_startup_irq(unsigned int irq)
static void
clipper_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
clipper_enable_irq(irq);
}
@@ -298,9 +298,8 @@ init_tsunami_irqs(struct hw_interrupt_ty
{
long i;
for (i = imin; i <= imax; ++i) {
- struct irq_desc *desc = irq_desc(i);
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = ops;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = ops;
}
}
Index: linux-2.6/arch/alpha/kernel/sys_eb64p.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_eb64p.c
+++ linux-2.6/arch/alpha/kernel/sys_eb64p.c
@@ -65,7 +65,7 @@ eb64p_startup_irq(unsigned int irq)
static void
eb64p_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
eb64p_enable_irq(irq);
}
@@ -135,10 +135,8 @@ eb64p_init_irq(void)
init_i8259a_irqs();
for (i = 16; i < 32; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &eb64p_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &eb64p_irq_type;
}
common_init_isa_dma();
Index: linux-2.6/arch/alpha/kernel/sys_eiger.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_eiger.c
+++ linux-2.6/arch/alpha/kernel/sys_eiger.c
@@ -76,7 +76,7 @@ eiger_startup_irq(unsigned int irq)
static void
eiger_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
eiger_enable_irq(irq);
}
@@ -153,9 +153,8 @@ eiger_init_irq(void)
init_i8259a_irqs();
for (i = 16; i < 128; ++i) {
- struct irq_desc *desc = irq_desc(i);
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &eiger_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &eiger_irq_type;
}
}
Index: linux-2.6/arch/alpha/kernel/sys_jensen.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_jensen.c
+++ linux-2.6/arch/alpha/kernel/sys_jensen.c
@@ -68,16 +68,13 @@ jensen_local_startup(unsigned int irq)
/* the parport is really hw IRQ 1, silly Jensen. */
if (irq == 7)
i8259a_startup_irq(1);
- else {
- struct irq_desc *desc = irq_desc(irq);
-
+ else
/*
* For all true local interrupts, set the flag that prevents
* the IPL from being dropped during handler processing.
*/
- if (desc->action)
- desc->action->flags |= IRQF_DISABLED;
- }
+ if (irq_desc[irq].action)
+ irq_desc[irq].action->flags |= IRQF_DISABLED;
return 0;
}
@@ -161,21 +158,22 @@ jensen_device_interrupt(unsigned long ve
}
/* If there is no handler yet... */
- if (irq_desc(irq)->action == NULL) {
- /* If it is a local interrupt that cannot be masked... */
- if (vector >= 0x900) {
- /* Clear keyboard/mouse state */
- inb(0x64);
- inb(0x60);
- /* Reset serial ports */
- inb(0x3fa);
- inb(0x2fa);
- outb(0x0c, 0x3fc);
- outb(0x0c, 0x2fc);
- /* Clear NMI */
- outb(0, 0x61);
- outb(0, 0x461);
- }
+ if (irq_desc[irq].action == NULL) {
+ /* If it is a local interrupt that cannot be masked... */
+ if (vector >= 0x900)
+ {
+ /* Clear keyboard/mouse state */
+ inb(0x64);
+ inb(0x60);
+ /* Reset serial ports */
+ inb(0x3fa);
+ inb(0x2fa);
+ outb(0x0c, 0x3fc);
+ outb(0x0c, 0x2fc);
+ /* Clear NMI */
+ outb(0,0x61);
+ outb(0,0x461);
+ }
}
#if 0
@@ -208,11 +206,11 @@ jensen_init_irq(void)
{
init_i8259a_irqs();
- irq_desc(1)->chip = &jensen_local_irq_type;
- irq_desc(4)->chip = &jensen_local_irq_type;
- irq_desc(3)->chip = &jensen_local_irq_type;
- irq_desc(7)->chip = &jensen_local_irq_type;
- irq_desc(9)->chip = &jensen_local_irq_type;
+ irq_desc[1].chip = &jensen_local_irq_type;
+ irq_desc[4].chip = &jensen_local_irq_type;
+ irq_desc[3].chip = &jensen_local_irq_type;
+ irq_desc[7].chip = &jensen_local_irq_type;
+ irq_desc[9].chip = &jensen_local_irq_type;
common_init_isa_dma();
}
Index: linux-2.6/arch/alpha/kernel/sys_marvel.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_marvel.c
+++ linux-2.6/arch/alpha/kernel/sys_marvel.c
@@ -152,7 +152,7 @@ io7_startup_irq(unsigned int irq)
static void
io7_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
io7_enable_irq(irq);
}
@@ -303,10 +303,8 @@ init_io7_irqs(struct io7 *io7,
/* Set up the lsi irqs. */
for (i = 0; i < 128; ++i) {
- struct irq_desc *desc = irq_desc(base + i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = lsi_ops;
+ irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[base + i].chip = lsi_ops;
}
/* Disable the implemented irqs in hardware. */
@@ -319,10 +317,8 @@ init_io7_irqs(struct io7 *io7,
/* Set up the msi irqs. */
for (i = 128; i < (128 + 512); ++i) {
- struct irq_desc *desc = irq_desc(base + i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = msi_ops;
+ irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[base + i].chip = msi_ops;
}
for (i = 0; i < 16; ++i)
@@ -339,10 +335,8 @@ marvel_init_irq(void)
/* Reserve the legacy irqs. */
for (i = 0; i < 16; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED;
- desc->chip = &marvel_legacy_irq_type;
+ irq_desc[i].status = IRQ_DISABLED;
+ irq_desc[i].chip = &marvel_legacy_irq_type;
}
/* Init the io7 irqs. */
Index: linux-2.6/arch/alpha/kernel/sys_mikasa.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_mikasa.c
+++ linux-2.6/arch/alpha/kernel/sys_mikasa.c
@@ -64,7 +64,7 @@ mikasa_startup_irq(unsigned int irq)
static void
mikasa_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
mikasa_enable_irq(irq);
}
@@ -115,10 +115,8 @@ mikasa_init_irq(void)
mikasa_update_irq_hw(0);
for (i = 16; i < 32; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &mikasa_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &mikasa_irq_type;
}
init_i8259a_irqs();
Index: linux-2.6/arch/alpha/kernel/sys_noritake.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_noritake.c
+++ linux-2.6/arch/alpha/kernel/sys_noritake.c
@@ -69,7 +69,7 @@ noritake_startup_irq(unsigned int irq)
static void
noritake_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
noritake_enable_irq(irq);
}
@@ -144,10 +144,8 @@ noritake_init_irq(void)
outw(0, 0x54c);
for (i = 16; i < 48; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &noritake_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &noritake_irq_type;
}
init_i8259a_irqs();
Index: linux-2.6/arch/alpha/kernel/sys_rawhide.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_rawhide.c
+++ linux-2.6/arch/alpha/kernel/sys_rawhide.c
@@ -131,7 +131,7 @@ rawhide_startup_irq(unsigned int irq)
static void
rawhide_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
rawhide_enable_irq(irq);
}
@@ -194,10 +194,8 @@ rawhide_init_irq(void)
}
for (i = 16; i < 128; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &rawhide_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &rawhide_irq_type;
}
init_i8259a_irqs();
Index: linux-2.6/arch/alpha/kernel/sys_rx164.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_rx164.c
+++ linux-2.6/arch/alpha/kernel/sys_rx164.c
@@ -68,7 +68,7 @@ rx164_startup_irq(unsigned int irq)
static void
rx164_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
rx164_enable_irq(irq);
}
@@ -116,10 +116,8 @@ rx164_init_irq(void)
rx164_update_irq_hw(0);
for (i = 16; i < 40; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &rx164_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &rx164_irq_type;
}
init_i8259a_irqs();
Index: linux-2.6/arch/alpha/kernel/sys_sable.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_sable.c
+++ linux-2.6/arch/alpha/kernel/sys_sable.c
@@ -484,7 +484,7 @@ sable_lynx_startup_irq(unsigned int irq)
static void
sable_lynx_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
sable_lynx_enable_irq(irq);
}
@@ -535,10 +535,8 @@ sable_lynx_init_irq(int nr_irqs)
long i;
for (i = 0; i < nr_irqs; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &sable_lynx_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &sable_lynx_irq_type;
}
common_init_isa_dma();
Index: linux-2.6/arch/alpha/kernel/sys_takara.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_takara.c
+++ linux-2.6/arch/alpha/kernel/sys_takara.c
@@ -70,7 +70,7 @@ takara_startup_irq(unsigned int irq)
static void
takara_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
takara_enable_irq(irq);
}
@@ -153,10 +153,8 @@ takara_init_irq(void)
takara_update_irq_hw(i, -1);
for (i = 16; i < 128; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &takara_irq_type;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = &takara_irq_type;
}
common_init_isa_dma();
Index: linux-2.6/arch/alpha/kernel/sys_titan.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_titan.c
+++ linux-2.6/arch/alpha/kernel/sys_titan.c
@@ -139,7 +139,7 @@ titan_startup_irq(unsigned int irq)
static void
titan_end_irq(unsigned int irq)
{
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
titan_enable_irq(irq);
}
@@ -187,10 +187,8 @@ init_titan_irqs(struct hw_interrupt_type
{
long i;
for (i = imin; i <= imax; ++i) {
- struct irq_desc *desc = irq_desc(i);
-
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = ops;
+ irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i].chip = ops;
}
}
Index: linux-2.6/arch/alpha/kernel/sys_wildfire.c
===================================================================
--- linux-2.6.orig/arch/alpha/kernel/sys_wildfire.c
+++ linux-2.6/arch/alpha/kernel/sys_wildfire.c
@@ -150,10 +150,10 @@ static void
wildfire_end_irq(unsigned int irq)
{
#if 0
- if (!irq_desc(irq)->action)
+ if (!irq_desc[irq].action)
printk("got irq %d\n", irq);
#endif
- if (!(irq_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
wildfire_enable_irq(irq);
}
@@ -196,20 +196,17 @@ wildfire_init_irq_per_pca(int qbbno, int
#endif
for (i = 0; i < 16; ++i) {
- struct irq_desc *desc;
if (i == 2)
continue;
- desc = irq_desc(i+irq_bias);
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &wildfire_irq_type;
+ irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i+irq_bias].chip = &wildfire_irq_type;
}
- irq_desc(36+irq_bias)->status = IRQ_DISABLED | IRQ_LEVEL;
- irq_desc(36+irq_bias)->chip = &wildfire_irq_type;
+ irq_desc[36+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[36+irq_bias].chip = &wildfire_irq_type;
for (i = 40; i < 64; ++i) {
- struct irq_desc *desc = irq_desc(i+irq_bias);
- desc->status = IRQ_DISABLED | IRQ_LEVEL;
- desc->chip = &wildfire_irq_type;
+ irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL;
+ irq_desc[i+irq_bias].chip = &wildfire_irq_type;
}
setup_irq(32+irq_bias, &isa_enable);
Index: linux-2.6/arch/arm/common/gic.c
===================================================================
--- linux-2.6.orig/arch/arm/common/gic.c
+++ linux-2.6/arch/arm/common/gic.c
@@ -117,7 +117,7 @@ static void gic_set_cpu(unsigned int irq
u32 val;
spin_lock(&irq_controller_lock);
- irq_desc(irq)->cpu = cpu;
+ irq_desc[irq].cpu = cpu;
val = readl(reg) & ~(0xff << shift);
val |= 1 << (cpu + shift);
writel(val, reg);
Index: linux-2.6/arch/arm/common/it8152.c
===================================================================
--- linux-2.6.orig/arch/arm/common/it8152.c
+++ linux-2.6/arch/arm/common/it8152.c
@@ -70,7 +70,7 @@ static inline void it8152_irq(int irq)
{
struct irq_desc *desc;
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
desc_handle_irq(irq, desc);
}
Index: linux-2.6/arch/arm/common/locomo.c
===================================================================
--- linux-2.6.orig/arch/arm/common/locomo.c
+++ linux-2.6/arch/arm/common/locomo.c
@@ -181,8 +181,8 @@ static void locomo_handler(unsigned int
if (req) {
/* generate the next interrupt(s) */
irq = LOCOMO_IRQ_START;
- d = irq_desc(irq);
- for (i = 0; i <= 3; i++, irq++, d = irq_desc(irq)) {
+ d = irq_desc + irq;
+ for (i = 0; i <= 3; i++, d++, irq++) {
if (req & (0x0100 << i)) {
desc_handle_irq(irq, d);
}
@@ -226,7 +226,7 @@ static void locomo_key_handler(unsigned
void __iomem *mapbase = get_irq_chip_data(irq);
if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
- d = irq_desc(LOCOMO_IRQ_KEY_START);
+ d = irq_desc + LOCOMO_IRQ_KEY_START;
desc_handle_irq(LOCOMO_IRQ_KEY_START, d);
}
}
@@ -277,8 +277,8 @@ static void locomo_gpio_handler(unsigned
if (req) {
irq = LOCOMO_IRQ_GPIO_START;
- d = irq_desc(LOCOMO_IRQ_GPIO_START);
- for (i = 0; i <= 15; i++, irq++, d = irq_desc(irq)) {
+ d = irq_desc + LOCOMO_IRQ_GPIO_START;
+ for (i = 0; i <= 15; i++, irq++, d++) {
if (req & (0x0001 << i)) {
desc_handle_irq(irq, d);
}
@@ -365,7 +365,7 @@ static void locomo_lt_handler(unsigned i
void __iomem *mapbase = get_irq_chip_data(irq);
if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
- d = irq_desc(LOCOMO_IRQ_LT_START);
+ d = irq_desc + LOCOMO_IRQ_LT_START;
desc_handle_irq(LOCOMO_IRQ_LT_START, d);
}
}
@@ -413,9 +413,9 @@ static void locomo_spi_handler(unsigned
req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F;
if (req) {
irq = LOCOMO_IRQ_SPI_START;
- d = irq_desc(irq);
+ d = irq_desc + irq;
- for (i = 0; i <= 3; i++, irq++, d = irq_desc(irq)) {
+ for (i = 0; i <= 3; i++, irq++, d++) {
if (req & (0x0001 << i)) {
desc_handle_irq(irq, d);
}
Index: linux-2.6/arch/arm/common/sa1111.c
===================================================================
--- linux-2.6.orig/arch/arm/common/sa1111.c
+++ linux-2.6/arch/arm/common/sa1111.c
@@ -170,11 +170,11 @@ sa1111_irq_handler(unsigned int irq, str
for (i = IRQ_SA1111_START; stat0; i++, stat0 >>= 1)
if (stat0 & 1)
- handle_edge_irq(i, irq_desc(i));
+ handle_edge_irq(i, irq_desc + i);
for (i = IRQ_SA1111_START + 32; stat1; i++, stat1 >>= 1)
if (stat1 & 1)
- handle_edge_irq(i, irq_desc(i));
+ handle_edge_irq(i, irq_desc + i);
/* For level-based interrupts */
desc->chip->unmask(irq);
Index: linux-2.6/arch/arm/kernel/ecard.c
===================================================================
--- linux-2.6.orig/arch/arm/kernel/ecard.c
+++ linux-2.6/arch/arm/kernel/ecard.c
@@ -587,7 +587,7 @@ ecard_irq_handler(unsigned int irq, stru
pending = ecard_default_ops.irqpending(ec);
if (pending) {
- struct irq_desc *d = irq_desc(ec->irq);
+ struct irq_desc *d = irq_desc + ec->irq;
desc_handle_irq(ec->irq, d);
called ++;
}
@@ -622,7 +622,7 @@ ecard_irqexp_handler(unsigned int irq, s
ecard_t *ec = slot_to_ecard(slot);
if (ec->claimed) {
- struct irq_desc *d = irq_desc(ec->irq);
+ struct irq_desc *d = irq_desc + ec->irq;
/*
* this ugly code is so that we can operate a
* prioritorising system:
Index: linux-2.6/arch/arm/kernel/irq.c
===================================================================
--- linux-2.6.orig/arch/arm/kernel/irq.c
+++ linux-2.6/arch/arm/kernel/irq.c
@@ -112,7 +112,7 @@ static struct irq_desc bad_irq_desc = {
asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
{
struct pt_regs *old_regs = set_irq_regs(regs);
- struct irq_desc *desc = irq_desc(irq);
+ struct irq_desc *desc = irq_desc + irq;
/*
* Some hardware gives randomly wrong interrupts. Rather
@@ -142,7 +142,7 @@ void set_irq_flags(unsigned int irq, uns
return;
}
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
spin_lock_irqsave(&desc->lock, flags);
desc->status |= IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;
if (iflags & IRQF_VALID)
@@ -159,7 +159,7 @@ void __init init_IRQ(void)
int irq;
for (irq = 0; irq < NR_IRQS; irq++)
- irq_desc(irq)->status |= IRQ_NOREQUEST | IRQ_NOPROBE;
+ irq_desc[irq].status |= IRQ_NOREQUEST | IRQ_NOPROBE;
#ifdef CONFIG_SMP
bad_irq_desc.affinity = CPU_MASK_ALL;
@@ -189,7 +189,7 @@ void migrate_irqs(void)
unsigned int i, cpu = smp_processor_id();
for (i = 0; i < NR_IRQS; i++) {
- struct irq_desc *desc = irq_desc(i);
+ struct irq_desc *desc = irq_desc + i;
if (desc->cpu == cpu) {
unsigned int newcpu = any_online_cpu(desc->affinity);
Index: linux-2.6/arch/arm/mach-at91/gpio.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-at91/gpio.c
+++ linux-2.6/arch/arm/mach-at91/gpio.c
@@ -404,7 +404,7 @@ static void gpio_irq_handler(unsigned ir
}
pin = bank->chipbase;
- gpio = irq_desc(pin);
+ gpio = &irq_desc[pin];
while (isr) {
if (isr & 1) {
@@ -515,7 +515,7 @@ void __init at91_gpio_irq_setup(void)
__raw_writel(~0, this->regbase + PIO_IDR);
for (i = 0, pin = this->chipbase; i < 32; i++, pin++) {
- lockdep_set_class(&irq_desc(pin)->lock, &gpio_lock_class);
+ lockdep_set_class(&irq_desc[pin].lock, &gpio_lock_class);
/*
* Can use the "simple" and not "edge" handler since it's
Index: linux-2.6/arch/arm/mach-davinci/gpio.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-davinci/gpio.c
+++ linux-2.6/arch/arm/mach-davinci/gpio.c
@@ -155,11 +155,10 @@ static void gpio_irq_enable(unsigned irq
{
struct gpio_controller *__iomem g = get_irq_chip_data(irq);
u32 mask = __gpio_mask(irq_to_gpio(irq));
- struct irq_desc *desc = irq_desc(irq);
- if (desc->status & IRQ_TYPE_EDGE_FALLING)
+ if (irq_desc[irq].status & IRQ_TYPE_EDGE_FALLING)
__raw_writel(mask, &g->set_falling);
- if (desc->status & IRQ_TYPE_EDGE_RISING)
+ if (irq_desc[irq].status & IRQ_TYPE_EDGE_RISING)
__raw_writel(mask, &g->set_rising);
}
@@ -167,14 +166,12 @@ static int gpio_irq_type(unsigned irq, u
{
struct gpio_controller *__iomem g = get_irq_chip_data(irq);
u32 mask = __gpio_mask(irq_to_gpio(irq));
- struct irq_desc *desc;
if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
return -EINVAL;
- desc = irq_desc(irq);
- desc->status &= ~IRQ_TYPE_SENSE_MASK;
- desc->status |= trigger;
+ irq_desc[irq].status &= ~IRQ_TYPE_SENSE_MASK;
+ irq_desc[irq].status |= trigger;
__raw_writel(mask, (trigger & IRQ_TYPE_EDGE_FALLING)
? &g->set_falling : &g->clr_falling);
@@ -218,7 +215,7 @@ gpio_irq_handler(unsigned irq, struct ir
/* now demux them to the right lowlevel handler */
n = (int)get_irq_data(irq);
- gpio = irq_desc(n);
+ gpio = &irq_desc[n];
while (status) {
res = ffs(status);
n += res;
Index: linux-2.6/arch/arm/mach-ep93xx/core.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-ep93xx/core.c
+++ linux-2.6/arch/arm/mach-ep93xx/core.c
@@ -192,7 +192,7 @@ static void ep93xx_gpio_ab_irq_handler(u
for (i = 0; i < 8; i++) {
if (status & (1 << i)) {
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_A(0)) + i;
- desc = irq_desc(gpio_irq);
+ desc = irq_desc + gpio_irq;
desc_handle_irq(gpio_irq, desc);
}
}
@@ -201,7 +201,7 @@ static void ep93xx_gpio_ab_irq_handler(u
for (i = 0; i < 8; i++) {
if (status & (1 << i)) {
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i;
- desc = irq_desc(gpio_irq);
+ desc = irq_desc + gpio_irq;
desc_handle_irq(gpio_irq, desc);
}
}
@@ -217,7 +217,7 @@ static void ep93xx_gpio_f_irq_handler(un
int port_f_idx = ((irq + 1) & 7) ^ 4; /* {19..22,47..50} -> {0..7} */
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_F(0)) + port_f_idx;
- desc_handle_irq(gpio_irq, irq_desc(gpio_irq));
+ desc_handle_irq(gpio_irq, irq_desc + gpio_irq);
}
static void ep93xx_gpio_irq_ack(unsigned int irq)
@@ -226,7 +226,7 @@ static void ep93xx_gpio_irq_ack(unsigned
int port = line >> 3;
int port_mask = 1 << (line & 7);
- if ((irq_desc(irq)->status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) {
+ if ((irq_desc[irq].status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) {
gpio_int_type2[port] ^= port_mask; /* switch edge direction */
ep93xx_gpio_update_int_params(port);
}
@@ -240,7 +240,7 @@ static void ep93xx_gpio_irq_mask_ack(uns
int port = line >> 3;
int port_mask = 1 << (line & 7);
- if ((irq_desc(irq)->status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
+ if ((irq_desc[irq].status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
gpio_int_type2[port] ^= port_mask; /* switch edge direction */
gpio_int_unmasked[port] &= ~port_mask;
@@ -275,7 +275,7 @@ static void ep93xx_gpio_irq_unmask(unsig
*/
static int ep93xx_gpio_irq_type(unsigned int irq, unsigned int type)
{
- struct irq_desc *desc = irq_desc(irq);
+ struct irq_desc *desc = irq_desc + irq;
const int gpio = irq_to_gpio(irq);
const int port = gpio >> 3;
const int port_mask = 1 << (gpio & 7);
Index: linux-2.6/arch/arm/mach-footbridge/isa-irq.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-footbridge/isa-irq.c
+++ linux-2.6/arch/arm/mach-footbridge/isa-irq.c
@@ -94,7 +94,7 @@ isa_irq_handler(unsigned int irq, struct
return;
}
- desc = irq_desc(isa_irq);
+ desc = irq_desc + isa_irq;
desc_handle_irq(isa_irq, desc);
}
Index: linux-2.6/arch/arm/mach-h720x/common.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-h720x/common.c
+++ linux-2.6/arch/arm/mach-h720x/common.c
@@ -104,7 +104,7 @@ h720x_gpio_handler(unsigned int mask, un
struct irq_desc *desc)
{
IRQDBG("%s irq: %d\n", __func__, irq);
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
while (mask) {
if (mask & 1) {
IRQDBG("handling irq %d\n", irq);
Index: linux-2.6/arch/arm/mach-h720x/cpu-h7202.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-h720x/cpu-h7202.c
+++ linux-2.6/arch/arm/mach-h720x/cpu-h7202.c
@@ -120,7 +120,7 @@ h7202_timerx_demux_handler(unsigned int
mask >>= 1;
irq = IRQ_TIMER1;
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
while (mask) {
if (mask & 1)
desc_handle_irq(irq, desc);
Index: linux-2.6/arch/arm/mach-imx/irq.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-imx/irq.c
+++ linux-2.6/arch/arm/mach-imx/irq.c
@@ -182,7 +182,7 @@ static void
imx_gpio_handler(unsigned int mask, unsigned int irq,
struct irq_desc *desc)
{
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
while (mask) {
if (mask & 1) {
DEBUG_IRQ("handling irq %d\n", irq);
Index: linux-2.6/arch/arm/mach-integrator/integrator_cp.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-integrator/integrator_cp.c
+++ linux-2.6/arch/arm/mach-integrator/integrator_cp.c
@@ -217,7 +217,7 @@ sic_handle_irq(unsigned int irq, struct
irq += IRQ_SIC_START;
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
desc_handle_irq(irq, desc);
} while (status);
}
Index: linux-2.6/arch/arm/mach-iop13xx/msi.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-iop13xx/msi.c
+++ linux-2.6/arch/arm/mach-iop13xx/msi.c
@@ -110,7 +110,7 @@ static void iop13xx_msi_handler(unsigned
do {
j = find_first_bit(&status, 32);
(write_imipr[i])(1 << j); /* write back to clear bit */
- desc = irq_desc(IRQ_IOP13XX_MSI_0 + j + (32*i));
+ desc = irq_desc + IRQ_IOP13XX_MSI_0 + j + (32*i);
desc_handle_irq(IRQ_IOP13XX_MSI_0 + j + (32*i), desc);
status = (read_imipr[i])();
} while (status);
Index: linux-2.6/arch/arm/mach-ixp2000/core.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-ixp2000/core.c
+++ linux-2.6/arch/arm/mach-ixp2000/core.c
@@ -311,7 +311,7 @@ static void ixp2000_GPIO_irq_handler(uns
for (i = 0; i <= 7; i++) {
if (status & (1<<i)) {
- desc = irq_desc(i + IRQ_IXP2000_GPIO0);
+ desc = irq_desc + i + IRQ_IXP2000_GPIO0;
desc_handle_irq(i + IRQ_IXP2000_GPIO0, desc);
}
}
@@ -404,7 +404,7 @@ static void ixp2000_err_irq_handler(unsi
for(i = 31; i >= 0; i--) {
if(status & (1 << i)) {
- desc = irq_desc(IRQ_IXP2000_DRAM0_MIN_ERR + i);
+ desc = irq_desc + IRQ_IXP2000_DRAM0_MIN_ERR + i;
desc_handle_irq(IRQ_IXP2000_DRAM0_MIN_ERR + i, desc);
}
}
Index: linux-2.6/arch/arm/mach-ixp2000/ixdp2x00.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-ixp2000/ixdp2x00.c
+++ linux-2.6/arch/arm/mach-ixp2000/ixdp2x00.c
@@ -131,7 +131,7 @@ static void ixdp2x00_irq_handler(unsigne
if(ex_interrupt & (1 << i)) {
struct irq_desc *cpld_desc;
int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
- cpld_desc = irq_desc(cpld_irq);
+ cpld_desc = irq_desc + cpld_irq;
desc_handle_irq(cpld_irq, cpld_desc);
}
}
Index: linux-2.6/arch/arm/mach-ixp2000/ixdp2x01.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-ixp2000/ixdp2x01.c
+++ linux-2.6/arch/arm/mach-ixp2000/ixdp2x01.c
@@ -81,7 +81,7 @@ static void ixdp2x01_irq_handler(unsigne
if (ex_interrupt & (1 << i)) {
struct irq_desc *cpld_desc;
int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
- cpld_desc = irq_desc(cpld_irq);
+ cpld_desc = irq_desc + cpld_irq;
desc_handle_irq(cpld_irq, cpld_desc);
}
}
Index: linux-2.6/arch/arm/mach-ixp23xx/core.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-ixp23xx/core.c
+++ linux-2.6/arch/arm/mach-ixp23xx/core.c
@@ -268,7 +268,7 @@ static void pci_handler(unsigned int irq
BUG();
}
- int_desc = irq_desc(irqno);
+ int_desc = irq_desc + irqno;
desc_handle_irq(irqno, int_desc);
desc->chip->unmask(irq);
Index: linux-2.6/arch/arm/mach-ixp23xx/ixdp2351.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-ixp23xx/ixdp2351.c
+++ linux-2.6/arch/arm/mach-ixp23xx/ixdp2351.c
@@ -71,7 +71,7 @@ static void ixdp2351_inta_handler(unsign
struct irq_desc *cpld_desc;
int cpld_irq =
IXP23XX_MACH_IRQ(IXDP2351_INTA_IRQ_BASE + i);
- cpld_desc = irq_desc(cpld_irq);
+ cpld_desc = irq_desc + cpld_irq;
desc_handle_irq(cpld_irq, cpld_desc);
}
}
@@ -108,7 +108,7 @@ static void ixdp2351_intb_handler(unsign
struct irq_desc *cpld_desc;
int cpld_irq =
IXP23XX_MACH_IRQ(IXDP2351_INTB_IRQ_BASE + i);
- cpld_desc = irq_desc(cpld_irq);
+ cpld_desc = irq_desc + cpld_irq;
desc_handle_irq(cpld_irq, cpld_desc);
}
}
Index: linux-2.6/arch/arm/mach-lh7a40x/common.h
===================================================================
--- linux-2.6.orig/arch/arm/mach-lh7a40x/common.h
+++ linux-2.6/arch/arm/mach-lh7a40x/common.h
@@ -15,4 +15,4 @@ extern void lh7a404_init_irq (void);
extern void lh7a40x_clcd_init (void);
extern void lh7a40x_init_board_irq (void);
-#define IRQ_DISPATCH(irq) desc_handle_irq((irq),(irq_desc(irq)))
+#define IRQ_DISPATCH(irq) desc_handle_irq((irq),(irq_desc + irq))
Index: linux-2.6/arch/arm/mach-netx/generic.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-netx/generic.c
+++ linux-2.6/arch/arm/mach-netx/generic.c
@@ -77,7 +77,7 @@ netx_hif_demux_handler(unsigned int irq_
stat = ((readl(NETX_DPMAS_INT_EN) &
readl(NETX_DPMAS_INT_STAT)) >> 24) & 0x1f;
- desc = irq_desc(NETX_IRQ_HIF_CHAINED(0));
+ desc = irq_desc + NETX_IRQ_HIF_CHAINED(0);
while (stat) {
if (stat & 1) {
Index: linux-2.6/arch/arm/mach-ns9xxx/board-a9m9750dev.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-ns9xxx/board-a9m9750dev.c
+++ linux-2.6/arch/arm/mach-ns9xxx/board-a9m9750dev.c
@@ -90,7 +90,7 @@ static void a9m9750dev_fpga_demux_handle
stat &= ~(1 << irqno);
- fpgadesc = irq_desc(FPGA_IRQ(irqno));
+ fpgadesc = irq_desc + FPGA_IRQ(irqno);
desc_handle_irq(FPGA_IRQ(irqno), fpgadesc);
}
Index: linux-2.6/arch/arm/mach-omap1/fpga.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-omap1/fpga.c
+++ linux-2.6/arch/arm/mach-omap1/fpga.c
@@ -99,7 +99,7 @@ void innovator_fpga_IRQ_demux(unsigned i
(fpga_irq < OMAP_FPGA_IRQ_END) && stat;
fpga_irq++, stat >>= 1) {
if (stat & 1) {
- d = irq_desc(fpga_irq);
+ d = irq_desc + fpga_irq;
desc_handle_irq(fpga_irq, d);
}
}
Index: linux-2.6/arch/arm/mach-orion5x/irq.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-orion5x/irq.c
+++ linux-2.6/arch/arm/mach-orion5x/irq.c
@@ -47,7 +47,7 @@
static void orion5x_gpio_irq_ack(u32 irq)
{
int pin = irq_to_gpio(irq);
- if (irq_desc(irq)->status & IRQ_LEVEL)
+ if (irq_desc[irq].status & IRQ_LEVEL)
/*
* Mask bit for level interrupt
*/
@@ -62,7 +62,7 @@ static void orion5x_gpio_irq_ack(u32 irq
static void orion5x_gpio_irq_mask(u32 irq)
{
int pin = irq_to_gpio(irq);
- if (irq_desc(irq)->status & IRQ_LEVEL)
+ if (irq_desc[irq].status & IRQ_LEVEL)
orion5x_clrbits(GPIO_LEVEL_MASK, 1 << pin);
else
orion5x_clrbits(GPIO_EDGE_MASK, 1 << pin);
@@ -71,7 +71,7 @@ static void orion5x_gpio_irq_mask(u32 ir
static void orion5x_gpio_irq_unmask(u32 irq)
{
int pin = irq_to_gpio(irq);
- if (irq_desc(irq)->status & IRQ_LEVEL)
+ if (irq_desc[irq].status & IRQ_LEVEL)
orion5x_setbits(GPIO_LEVEL_MASK, 1 << pin);
else
orion5x_setbits(GPIO_EDGE_MASK, 1 << pin);
@@ -88,7 +88,7 @@ static int orion5x_gpio_set_irq_type(u32
return -EINVAL;
}
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
switch (type) {
case IRQ_TYPE_LEVEL_HIGH:
@@ -155,7 +155,7 @@ static void orion5x_gpio_irq_handler(uns
for (pin = offs; pin < offs + 8; pin++) {
if (cause & (1 << pin)) {
irq = gpio_to_irq(pin);
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
if ((desc->status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) {
/* Swap polarity (race with GPIO line) */
u32 polarity = readl(GPIO_IN_POL);
@@ -186,7 +186,7 @@ static void __init orion5x_init_gpio_irq
for (i = IRQ_ORION5X_GPIO_START; i < NR_IRQS; i++) {
set_irq_chip(i, &orion5x_gpio_irq_chip);
set_irq_handler(i, handle_level_irq);
- desc = irq_desc(i);
+ desc = irq_desc + i;
desc->status |= IRQ_LEVEL;
set_irq_flags(i, IRQF_VALID);
}
Index: linux-2.6/arch/arm/mach-pxa/gpio.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-pxa/gpio.c
+++ linux-2.6/arch/arm/mach-pxa/gpio.c
@@ -275,7 +275,7 @@ static void pxa_gpio_demux_handler(unsig
loop = 1;
n = PXA_GPIO_IRQ_BASE + bit;
- desc_handle_irq(n, irq_desc(n));
+ desc_handle_irq(n, irq_desc + n);
bit = find_next_bit(gedr, GEDR_BITS, bit + 1);
}
Index: linux-2.6/arch/arm/mach-pxa/lpd270.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-pxa/lpd270.c
+++ linux-2.6/arch/arm/mach-pxa/lpd270.c
@@ -88,7 +88,7 @@ static void lpd270_irq_handler(unsigned
GEDR(0) = GPIO_bit(0); /* clear useless edge notification */
if (likely(pending)) {
irq = LPD270_IRQ(0) + __ffs(pending);
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
desc_handle_irq(irq, desc);
pending = __raw_readw(LPD270_INT_STATUS) &
Index: linux-2.6/arch/arm/mach-pxa/lubbock.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-pxa/lubbock.c
+++ linux-2.6/arch/arm/mach-pxa/lubbock.c
@@ -131,7 +131,7 @@ static void lubbock_irq_handler(unsigned
GEDR(0) = GPIO_bit(0); /* clear our parent irq */
if (likely(pending)) {
irq = LUBBOCK_IRQ(0) + __ffs(pending);
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
desc_handle_irq(irq, desc);
}
pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled;
Index: linux-2.6/arch/arm/mach-pxa/mainstone.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-pxa/mainstone.c
+++ linux-2.6/arch/arm/mach-pxa/mainstone.c
@@ -162,7 +162,7 @@ static void mainstone_irq_handler(unsign
GEDR(0) = GPIO_bit(0); /* clear useless edge notification */
if (likely(pending)) {
irq = MAINSTONE_IRQ(0) + __ffs(pending);
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
desc_handle_irq(irq, desc);
}
pending = MST_INTSETCLR & mainstone_irq_enabled;
Index: linux-2.6/arch/arm/mach-pxa/pcm990-baseboard.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-pxa/pcm990-baseboard.c
+++ linux-2.6/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -262,7 +262,7 @@ static void pcm990_irq_handler(unsigned
GPIO_bit(PCM990_CTRL_INT_IRQ_GPIO);
if (likely(pending)) {
irq = PCM027_IRQ(0) + __ffs(pending);
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
desc_handle_irq(irq, desc);
}
pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled;
Index: linux-2.6/arch/arm/mach-s3c2410/bast-irq.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-s3c2410/bast-irq.c
+++ linux-2.6/arch/arm/mach-s3c2410/bast-irq.c
@@ -87,7 +87,7 @@ bast_pc104_mask(unsigned int irqno)
static void
bast_pc104_maskack(unsigned int irqno)
{
- struct irq_desc *desc = irq_desc(IRQ_ISA);
+ struct irq_desc *desc = irq_desc + IRQ_ISA;
bast_pc104_mask(irqno);
desc->chip->ack(IRQ_ISA);
@@ -122,7 +122,7 @@ bast_irq_pc104_demux(unsigned int irq,
if (unlikely(stat == 0)) {
/* ack if we get an irq with nothing (ie, startup) */
- desc = irq_desc(IRQ_ISA);
+ desc = irq_desc + IRQ_ISA;
desc->chip->ack(IRQ_ISA);
} else {
/* handle the IRQ */
@@ -130,7 +130,7 @@ bast_irq_pc104_demux(unsigned int irq,
for (i = 0; stat != 0; i++, stat >>= 1) {
if (stat & 1) {
irqno = bast_pc104_irqs[i];
- desc = irq_desc(irqno);
+ desc = irq_desc + irqno;
desc_handle_irq(irqno, desc);
}
}
Index: linux-2.6/arch/arm/mach-s3c2412/irq.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-s3c2412/irq.c
+++ linux-2.6/arch/arm/mach-s3c2412/irq.c
@@ -123,10 +123,10 @@ static void s3c2412_irq_demux_cfsdi(unsi
subsrc &= ~submsk;
if (subsrc & INTBIT(IRQ_S3C2412_SDI))
- desc_handle_irq(IRQ_S3C2412_SDI, irq_desc(IRQ_S3C2412_SDI));
+ desc_handle_irq(IRQ_S3C2412_SDI, irq_desc + IRQ_S3C2412_SDI);
if (subsrc & INTBIT(IRQ_S3C2412_CF))
- desc_handle_irq(IRQ_S3C2412_CF, irq_desc(IRQ_S3C2412_CF));
+ desc_handle_irq(IRQ_S3C2412_CF, irq_desc + IRQ_S3C2412_CF);
}
#define INTMSK_CFSDI (1UL << (IRQ_S3C2412_CFSDI - IRQ_EINT0))
Index: linux-2.6/arch/arm/mach-s3c2440/irq.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-s3c2440/irq.c
+++ linux-2.6/arch/arm/mach-s3c2440/irq.c
@@ -58,11 +58,11 @@ static void s3c_irq_demux_wdtac97(unsign
if (subsrc != 0) {
if (subsrc & 1) {
- mydesc = irq_desc(IRQ_S3C2440_WDT);
+ mydesc = irq_desc + IRQ_S3C2440_WDT;
desc_handle_irq(IRQ_S3C2440_WDT, mydesc);
}
if (subsrc & 2) {
- mydesc = irq_desc(IRQ_S3C2440_AC97);
+ mydesc = irq_desc + IRQ_S3C2440_AC97;
desc_handle_irq(IRQ_S3C2440_AC97, mydesc);
}
}
Index: linux-2.6/arch/arm/mach-s3c2443/irq.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-s3c2443/irq.c
+++ linux-2.6/arch/arm/mach-s3c2443/irq.c
@@ -57,13 +57,13 @@ static inline void s3c2443_irq_demux(uns
subsrc &= (1 << len)-1;
end = len + irq;
- mydesc = irq_desc(irq);
+ mydesc = irq_desc + irq;
for (; irq < end && subsrc; irq++) {
if (subsrc & 1)
desc_handle_irq(irq, mydesc);
- mydesc = irq_desc(irq);
+ mydesc++;
subsrc >>= 1;
}
}
Index: linux-2.6/arch/arm/mach-sa1100/h3600.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-sa1100/h3600.c
+++ linux-2.6/arch/arm/mach-sa1100/h3600.c
@@ -719,14 +719,14 @@ static void h3800_IRQ_demux(unsigned int
if (0) printk("%s KPIO 0x%08X\n", __func__, irq);
for (j = 0; j < H3800_KPIO_IRQ_COUNT; j++)
if (irq & kpio_irq_mask[j])
- handle_edge_irq(H3800_KPIO_IRQ_COUNT + j, irq_desc(H3800_KPIO_IRQ_COUNT + j));
+ handle_edge_irq(H3800_KPIO_IRQ_COUNT + j, irq_desc + H3800_KPIO_IRQ_COUNT + j);
/* GPIO2 */
irq = H3800_ASIC2_GPIINTFLAG;
if (0) printk("%s GPIO 0x%08X\n", __func__, irq);
for (j = 0; j < H3800_GPIO_IRQ_COUNT; j++)
if (irq & gpio_irq_mask[j])
- handle_edge_irq(H3800_GPIO_IRQ_COUNT + j, irq_desc(H3800_GPIO_IRQ_COUNT + j));
+ handle_edge_irq(H3800_GPIO_IRQ_COUNT + j, irq_desc + H3800_GPIO_IRQ_COUNT + j);
}
if (i >= MAX_ASIC_ISR_LOOPS)
@@ -822,17 +822,15 @@ static void __init h3800_init_irq(void)
#if 0
for (i = 0; i < H3800_KPIO_IRQ_COUNT; i++) {
int irq = i + H3800_KPIO_IRQ_START;
- struct irq_desc *desc = irq_desc(irq);
- desc->valid = 1;
- desc->probe_ok = 1;
+ irq_desc[irq].valid = 1;
+ irq_desc[irq].probe_ok = 1;
set_irq_chip(irq, &h3800_kpio_irqchip);
}
for (i = 0; i < H3800_GPIO_IRQ_COUNT; i++) {
int irq = i + H3800_GPIO_IRQ_START;
- struct irq_desc *desc = irq_desc(irq);
- desc->valid = 1;
- desc->probe_ok = 1;
+ irq_desc[irq].valid = 1;
+ irq_desc[irq].probe_ok = 1;
set_irq_chip(irq, &h3800_gpio_irqchip);
}
#endif
Index: linux-2.6/arch/arm/mach-sa1100/irq.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-sa1100/irq.c
+++ linux-2.6/arch/arm/mach-sa1100/irq.c
@@ -122,7 +122,7 @@ sa1100_high_gpio_handler(unsigned int ir
GEDR = mask;
irq = IRQ_GPIO11;
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
mask >>= 11;
do {
if (mask & 1)
Index: linux-2.6/arch/arm/mach-sa1100/neponset.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-sa1100/neponset.c
+++ linux-2.6/arch/arm/mach-sa1100/neponset.c
@@ -67,12 +67,12 @@ neponset_irq_handler(unsigned int irq, s
desc->chip->ack(irq);
if (irr & IRR_ETHERNET) {
- d = irq_desc(IRQ_NEPONSET_SMC9196);
+ d = irq_desc + IRQ_NEPONSET_SMC9196;
desc_handle_irq(IRQ_NEPONSET_SMC9196, d);
}
if (irr & IRR_USAR) {
- d = irq_desc(IRQ_NEPONSET_USAR);
+ d = irq_desc + IRQ_NEPONSET_USAR;
desc_handle_irq(IRQ_NEPONSET_USAR, d);
}
@@ -80,7 +80,7 @@ neponset_irq_handler(unsigned int irq, s
}
if (irr & IRR_SA1111) {
- d = irq_desc(IRQ_NEPONSET_SA1111);
+ d = irq_desc + IRQ_NEPONSET_SA1111;
desc_handle_irq(IRQ_NEPONSET_SA1111, d);
}
}
Index: linux-2.6/arch/arm/mach-versatile/core.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-versatile/core.c
+++ linux-2.6/arch/arm/mach-versatile/core.c
@@ -95,7 +95,7 @@ sic_handle_irq(unsigned int irq, struct
irq += IRQ_SIC_START;
- desc = irq_desc(irq);
+ desc = irq_desc + irq;
desc_handle_irq(irq, desc);
} while (status);
}
Index: linux-2.6/arch/arm/oprofile/op_model_mpcore.c
===================================================================
--- linux-2.6.orig/arch/arm/oprofile/op_model_mpcore.c
+++ linux-2.6/arch/arm/oprofile/op_model_mpcore.c
@@ -259,7 +259,7 @@ static void em_stop(void)
*/
static void em_route_irq(int irq, unsigned int cpu)
{
- struct irq_desc *desc = irq_desc(irq);
+ struct irq_desc *desc = irq_desc + irq;
cpumask_t mask = cpumask_of_cpu(cpu);
spin_lock_irq(&desc->lock);
Index: linux-2.6/arch/arm/plat-mxc/gpio.c
===================================================================
--- linux-2.6.orig/arch/arm/plat-mxc/gpio.c
+++ linux-2.6/arch/arm/plat-mxc/gpio.c
@@ -105,14 +105,13 @@ static void mxc_gpio_irq_handler(struct
gpio_irq_no = port->virtual_irq_start;
for (; irq_stat != 0; irq_stat >>= 1, gpio_irq_no++) {
- struct irq_desc *desc;
if ((irq_stat & 1) == 0)
continue;
- desc = irq_desc(gpio_irq_no);
- BUG_ON(!(desc->handle_irq));
- desc->handle_irq(gpio_irq_no, desc);
+ BUG_ON(!(irq_desc[gpio_irq_no].handle_irq));
+ irq_desc[gpio_irq_no].handle_irq(gpio_irq_no,
+ &irq_desc[gpio_irq_no]);
}
}
Index: linux-2.6/arch/arm/plat-omap/gpio.c
===================================================================
--- linux-2.6.orig/arch/arm/plat-omap/gpio.c
+++ linux-2.6/arch/arm/plat-omap/gpio.c
@@ -648,10 +648,8 @@ static int gpio_irq_type(unsigned irq, u
spin_lock_irqsave(&bank->lock, flags);
retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type);
if (retval == 0) {
- struct irq_desc *desc = irq_desc(irq);
-
- desc->status &= ~IRQ_TYPE_SENSE_MASK;
- desc->status |= type;
+ irq_desc[irq].status &= ~IRQ_TYPE_SENSE_MASK;
+ irq_desc[irq].status |= type;
}
spin_unlock_irqrestore(&bank->lock, flags);
@@ -1057,7 +1055,7 @@ static void gpio_irq_handler(unsigned in
if (!(isr & 1))
continue;
- d = irq_desc(gpio_irq);
+ d = irq_desc + gpio_irq;
desc_handle_irq(gpio_irq, d);
}
@@ -1505,7 +1503,7 @@ static int __init _omap_gpio_init(void)
for (j = bank->virtual_irq_start;
j < bank->virtual_irq_start + gpio_count; j++) {
- lockdep_set_class(&irq_desc(j)->lock, &gpio_lock_class);
+ lockdep_set_class(&irq_desc[j].lock, &gpio_lock_class);
set_irq_chip_data(j, bank);
if (bank_is_mpuio(bank))
set_irq_chip(j, &mpuio_irq_chip);
@@ -1820,7 +1818,7 @@ static int dbg_gpio_show(struct seq_file
/* FIXME for at least omap2, show pullup/pulldown state */
- irqstat = irq_desc(irq)->status;
+ irqstat = irq_desc[irq].status;
if (is_in && ((bank->suspend_wakeup & mask)
|| irqstat & IRQ_TYPE_SENSE_MASK)) {
char *trigger = NULL;
Index: linux-2.6/arch/arm/plat-orion/irq.c
===================================================================
--- linux-2.6.orig/arch/arm/plat-orion/irq.c
+++ linux-2.6/arch/arm/plat-orion/irq.c
@@ -59,7 +59,7 @@ void __init orion_irq_init(unsigned int
set_irq_chip(irq, &orion_irq_chip);
set_irq_chip_data(irq, maskaddr);
set_irq_handler(irq, handle_level_irq);
- irq_desc(irq)->status |= IRQ_LEVEL;
+ irq_desc[irq].status |= IRQ_LEVEL;
set_irq_flags(irq, IRQF_VALID);
}
}
Index: linux-2.6/arch/arm/plat-s3c24xx/irq.c
===================================================================
--- linux-2.6.orig/arch/arm/plat-s3c24xx/irq.c
+++ linux-2.6/arch/arm/plat-s3c24xx/irq.c
@@ -482,11 +482,11 @@ static void s3c_irq_demux_adc(unsigned i
if (subsrc != 0) {
if (subsrc & 1) {
- mydesc = irq_desc(IRQ_TC);
+ mydesc = irq_desc + IRQ_TC;
desc_handle_irq(IRQ_TC, mydesc);
}
if (subsrc & 2) {
- mydesc = irq_desc(IRQ_ADC);
+ mydesc = irq_desc + IRQ_ADC;
desc_handle_irq(IRQ_ADC, mydesc);
}
}
@@ -512,17 +512,17 @@ static void s3c_irq_demux_uart(unsigned
subsrc &= 7;
if (subsrc != 0) {
- desc = irq_desc(start);
+ desc = irq_desc + start;
if (subsrc & 1)
desc_handle_irq(start, desc);
- desc = irq_desc(start + 1);
+ desc++;
if (subsrc & 2)
desc_handle_irq(start+1, desc);
- desc = irq_desc(start + 2);
+ desc++;
if (subsrc & 4)
desc_handle_irq(start+2, desc);
@@ -572,7 +572,7 @@ s3c_irq_demux_extint8(unsigned int irq,
eintpnd &= ~(1<<irq);
irq += (IRQ_EINT4 - 4);
- desc_handle_irq(irq, irq_desc(irq));
+ desc_handle_irq(irq, irq_desc + irq);
}
}
@@ -595,7 +595,7 @@ s3c_irq_demux_extint4t7(unsigned int irq
irq += (IRQ_EINT4 - 4);
- desc_handle_irq(irq, irq_desc(irq));
+ desc_handle_irq(irq, irq_desc + irq);
}
}
Index: linux-2.6/arch/arm/plat-s3c24xx/s3c244x-irq.c
===================================================================
--- linux-2.6.orig/arch/arm/plat-s3c24xx/s3c244x-irq.c
+++ linux-2.6/arch/arm/plat-s3c24xx/s3c244x-irq.c
@@ -58,11 +58,11 @@ static void s3c_irq_demux_cam(unsigned i
if (subsrc != 0) {
if (subsrc & 1) {
- mydesc = irq_desc(IRQ_S3C2440_CAM_C);