diff options
-rw-r--r-- | arch/arm/common/locomo.c | 10 | ||||
-rw-r--r-- | arch/arm/kernel/ecard.c | 4 | ||||
-rw-r--r-- | arch/arm/kernel/irq.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-footbridge/isa-irq.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-h720x/common.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-h720x/cpu-h7202.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/irq.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-integrator/integrator_cp.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ixp2000/core.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ixp2000/ixdp2x00.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ixp2000/ixdp2x01.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-lh7a40x/common.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap1/fpga.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/irq.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-pxa/lubbock.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/mainstone.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/bast-irq.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/irq.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/s3c2440-irq.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/irq.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/neponset.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-versatile/core.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/gpio.c | 2 | ||||
-rw-r--r-- | include/asm-arm/mach/irq.h | 8 |
24 files changed, 49 insertions, 41 deletions
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c index 30ab1c3e1d4d..51f430cc2fbf 100644 --- a/arch/arm/common/locomo.c +++ b/arch/arm/common/locomo.c | |||
@@ -177,7 +177,7 @@ static void locomo_handler(unsigned int irq, struct irqdesc *desc, | |||
177 | d = irq_desc + irq; | 177 | d = irq_desc + irq; |
178 | for (i = 0; i <= 3; i++, d++, irq++) { | 178 | for (i = 0; i <= 3; i++, d++, irq++) { |
179 | if (req & (0x0100 << i)) { | 179 | if (req & (0x0100 << i)) { |
180 | d->handle(irq, d, regs); | 180 | desc_handle_irq(irq, d, regs); |
181 | } | 181 | } |
182 | 182 | ||
183 | } | 183 | } |
@@ -220,7 +220,7 @@ static void locomo_key_handler(unsigned int irq, struct irqdesc *desc, | |||
220 | 220 | ||
221 | if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) { | 221 | if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) { |
222 | d = irq_desc + LOCOMO_IRQ_KEY_START; | 222 | d = irq_desc + LOCOMO_IRQ_KEY_START; |
223 | d->handle(LOCOMO_IRQ_KEY_START, d, regs); | 223 | desc_handle_irq(LOCOMO_IRQ_KEY_START, d, regs); |
224 | } | 224 | } |
225 | } | 225 | } |
226 | 226 | ||
@@ -273,7 +273,7 @@ static void locomo_gpio_handler(unsigned int irq, struct irqdesc *desc, | |||
273 | d = irq_desc + LOCOMO_IRQ_GPIO_START; | 273 | d = irq_desc + LOCOMO_IRQ_GPIO_START; |
274 | for (i = 0; i <= 15; i++, irq++, d++) { | 274 | for (i = 0; i <= 15; i++, irq++, d++) { |
275 | if (req & (0x0001 << i)) { | 275 | if (req & (0x0001 << i)) { |
276 | d->handle(irq, d, regs); | 276 | desc_handle_irq(irq, d, regs); |
277 | } | 277 | } |
278 | } | 278 | } |
279 | } | 279 | } |
@@ -328,7 +328,7 @@ static void locomo_lt_handler(unsigned int irq, struct irqdesc *desc, | |||
328 | 328 | ||
329 | if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) { | 329 | if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) { |
330 | d = irq_desc + LOCOMO_IRQ_LT_START; | 330 | d = irq_desc + LOCOMO_IRQ_LT_START; |
331 | d->handle(LOCOMO_IRQ_LT_START, d, regs); | 331 | desc_handle_irq(LOCOMO_IRQ_LT_START, d, regs); |
332 | } | 332 | } |
333 | } | 333 | } |
334 | 334 | ||
@@ -379,7 +379,7 @@ static void locomo_spi_handler(unsigned int irq, struct irqdesc *desc, | |||
379 | 379 | ||
380 | for (i = 0; i <= 3; i++, irq++, d++) { | 380 | for (i = 0; i <= 3; i++, irq++, d++) { |
381 | if (req & (0x0001 << i)) { | 381 | if (req & (0x0001 << i)) { |
382 | d->handle(irq, d, regs); | 382 | desc_handle_irq(irq, d, regs); |
383 | } | 383 | } |
384 | } | 384 | } |
385 | } | 385 | } |
diff --git a/arch/arm/kernel/ecard.c b/arch/arm/kernel/ecard.c index 6540db691338..dceb826bd216 100644 --- a/arch/arm/kernel/ecard.c +++ b/arch/arm/kernel/ecard.c | |||
@@ -585,7 +585,7 @@ ecard_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs) | |||
585 | 585 | ||
586 | if (pending) { | 586 | if (pending) { |
587 | struct irqdesc *d = irq_desc + ec->irq; | 587 | struct irqdesc *d = irq_desc + ec->irq; |
588 | d->handle(ec->irq, d, regs); | 588 | desc_handle_irq(ec->irq, d, regs); |
589 | called ++; | 589 | called ++; |
590 | } | 590 | } |
591 | } | 591 | } |
@@ -632,7 +632,7 @@ ecard_irqexp_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *reg | |||
632 | * Serial cards should go in 0/1, ethernet/scsi in 2/3 | 632 | * Serial cards should go in 0/1, ethernet/scsi in 2/3 |
633 | * otherwise you will lose serial data at high speeds! | 633 | * otherwise you will lose serial data at high speeds! |
634 | */ | 634 | */ |
635 | d->handle(ec->irq, d, regs); | 635 | desc_handle_irq(ec->irq, d, regs); |
636 | } else { | 636 | } else { |
637 | printk(KERN_WARNING "card%d: interrupt from unclaimed " | 637 | printk(KERN_WARNING "card%d: interrupt from unclaimed " |
638 | "card???\n", slot); | 638 | "card???\n", slot); |
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 58b3bd000834..3284118f356b 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
@@ -517,7 +517,7 @@ static void do_pending_irqs(struct pt_regs *regs) | |||
517 | list_for_each_safe(l, n, &head) { | 517 | list_for_each_safe(l, n, &head) { |
518 | desc = list_entry(l, struct irqdesc, pend); | 518 | desc = list_entry(l, struct irqdesc, pend); |
519 | list_del_init(&desc->pend); | 519 | list_del_init(&desc->pend); |
520 | desc->handle(desc - irq_desc, desc, regs); | 520 | desc_handle_irq(desc - irq_desc, desc, regs); |
521 | } | 521 | } |
522 | 522 | ||
523 | /* | 523 | /* |
@@ -545,7 +545,7 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs) | |||
545 | 545 | ||
546 | irq_enter(); | 546 | irq_enter(); |
547 | spin_lock(&irq_controller_lock); | 547 | spin_lock(&irq_controller_lock); |
548 | desc->handle(irq, desc, regs); | 548 | desc_handle_irq(irq, desc, regs); |
549 | 549 | ||
550 | /* | 550 | /* |
551 | * Now re-run any pending interrupts. | 551 | * Now re-run any pending interrupts. |
diff --git a/arch/arm/mach-footbridge/isa-irq.c b/arch/arm/mach-footbridge/isa-irq.c index b21016070ea3..e1c43b331d64 100644 --- a/arch/arm/mach-footbridge/isa-irq.c +++ b/arch/arm/mach-footbridge/isa-irq.c | |||
@@ -95,7 +95,7 @@ isa_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs) | |||
95 | } | 95 | } |
96 | 96 | ||
97 | desc = irq_desc + isa_irq; | 97 | desc = irq_desc + isa_irq; |
98 | desc->handle(isa_irq, desc, regs); | 98 | desc_handle_irq(isa_irq, desc, regs); |
99 | } | 99 | } |
100 | 100 | ||
101 | static struct irqaction irq_cascade = { .handler = no_action, .name = "cascade", }; | 101 | static struct irqaction irq_cascade = { .handler = no_action, .name = "cascade", }; |
diff --git a/arch/arm/mach-h720x/common.c b/arch/arm/mach-h720x/common.c index 96aa3af70d86..5110e2e65ddd 100644 --- a/arch/arm/mach-h720x/common.c +++ b/arch/arm/mach-h720x/common.c | |||
@@ -108,7 +108,7 @@ h720x_gpio_handler(unsigned int mask, unsigned int irq, | |||
108 | while (mask) { | 108 | while (mask) { |
109 | if (mask & 1) { | 109 | if (mask & 1) { |
110 | IRQDBG("handling irq %d\n", irq); | 110 | IRQDBG("handling irq %d\n", irq); |
111 | desc->handle(irq, desc, regs); | 111 | desc_handle_irq(irq, desc, regs); |
112 | } | 112 | } |
113 | irq++; | 113 | irq++; |
114 | desc++; | 114 | desc++; |
diff --git a/arch/arm/mach-h720x/cpu-h7202.c b/arch/arm/mach-h720x/cpu-h7202.c index 593b6a2a30e1..4b3199319e68 100644 --- a/arch/arm/mach-h720x/cpu-h7202.c +++ b/arch/arm/mach-h720x/cpu-h7202.c | |||
@@ -126,7 +126,7 @@ h7202_timerx_demux_handler(unsigned int irq_unused, struct irqdesc *desc, | |||
126 | desc = irq_desc + irq; | 126 | desc = irq_desc + irq; |
127 | while (mask) { | 127 | while (mask) { |
128 | if (mask & 1) | 128 | if (mask & 1) |
129 | desc->handle(irq, desc, regs); | 129 | desc_handle_irq(irq, desc, regs); |
130 | irq++; | 130 | irq++; |
131 | desc++; | 131 | desc++; |
132 | mask >>= 1; | 132 | mask >>= 1; |
diff --git a/arch/arm/mach-imx/irq.c b/arch/arm/mach-imx/irq.c index 45d22dd5583a..eeb8a6d4a399 100644 --- a/arch/arm/mach-imx/irq.c +++ b/arch/arm/mach-imx/irq.c | |||
@@ -152,7 +152,7 @@ imx_gpio_handler(unsigned int mask, unsigned int irq, | |||
152 | while (mask) { | 152 | while (mask) { |
153 | if (mask & 1) { | 153 | if (mask & 1) { |
154 | DEBUG_IRQ("handling irq %d\n", irq); | 154 | DEBUG_IRQ("handling irq %d\n", irq); |
155 | desc->handle(irq, desc, regs); | 155 | desc_handle_irq(irq, desc, regs); |
156 | } | 156 | } |
157 | irq++; | 157 | irq++; |
158 | desc++; | 158 | desc++; |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 569f328c479d..2be5c03ab87f 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -170,7 +170,7 @@ sic_handle_irq(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs) | |||
170 | irq += IRQ_SIC_START; | 170 | irq += IRQ_SIC_START; |
171 | 171 | ||
172 | desc = irq_desc + irq; | 172 | desc = irq_desc + irq; |
173 | desc->handle(irq, desc, regs); | 173 | desc_handle_irq(irq, desc, regs); |
174 | } while (status); | 174 | } while (status); |
175 | } | 175 | } |
176 | 176 | ||
diff --git a/arch/arm/mach-ixp2000/core.c b/arch/arm/mach-ixp2000/core.c index 594b4c4d5b11..781d10ae00b7 100644 --- a/arch/arm/mach-ixp2000/core.c +++ b/arch/arm/mach-ixp2000/core.c | |||
@@ -317,7 +317,7 @@ static void ixp2000_GPIO_irq_handler(unsigned int irq, struct irqdesc *desc, str | |||
317 | for (i = 0; i <= 7; i++) { | 317 | for (i = 0; i <= 7; i++) { |
318 | if (status & (1<<i)) { | 318 | if (status & (1<<i)) { |
319 | desc = irq_desc + i + IRQ_IXP2000_GPIO0; | 319 | desc = irq_desc + i + IRQ_IXP2000_GPIO0; |
320 | desc->handle(i + IRQ_IXP2000_GPIO0, desc, regs); | 320 | desc_handle_irq(i + IRQ_IXP2000_GPIO0, desc, regs); |
321 | } | 321 | } |
322 | } | 322 | } |
323 | } | 323 | } |
diff --git a/arch/arm/mach-ixp2000/ixdp2x00.c b/arch/arm/mach-ixp2000/ixdp2x00.c index a43369ad876c..63ba0191aa65 100644 --- a/arch/arm/mach-ixp2000/ixdp2x00.c +++ b/arch/arm/mach-ixp2000/ixdp2x00.c | |||
@@ -133,7 +133,7 @@ static void ixdp2x00_irq_handler(unsigned int irq, struct irqdesc *desc, struct | |||
133 | struct irqdesc *cpld_desc; | 133 | struct irqdesc *cpld_desc; |
134 | int cpld_irq = IXP2000_BOARD_IRQ(0) + i; | 134 | int cpld_irq = IXP2000_BOARD_IRQ(0) + i; |
135 | cpld_desc = irq_desc + cpld_irq; | 135 | cpld_desc = irq_desc + cpld_irq; |
136 | cpld_desc->handle(cpld_irq, cpld_desc, regs); | 136 | desc_handle_irq(cpld_irq, cpld_desc, regs); |
137 | } | 137 | } |
138 | } | 138 | } |
139 | 139 | ||
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index 43447dad1657..7a5109921287 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c | |||
@@ -82,7 +82,7 @@ static void ixdp2x01_irq_handler(unsigned int irq, struct irqdesc *desc, struct | |||
82 | struct irqdesc *cpld_desc; | 82 | struct irqdesc *cpld_desc; |
83 | int cpld_irq = IXP2000_BOARD_IRQ(0) + i; | 83 | int cpld_irq = IXP2000_BOARD_IRQ(0) + i; |
84 | cpld_desc = irq_desc + cpld_irq; | 84 | cpld_desc = irq_desc + cpld_irq; |
85 | cpld_desc->handle(cpld_irq, cpld_desc, regs); | 85 | desc_handle_irq(cpld_irq, cpld_desc, regs); |
86 | } | 86 | } |
87 | } | 87 | } |
88 | 88 | ||
diff --git a/arch/arm/mach-lh7a40x/common.h b/arch/arm/mach-lh7a40x/common.h index beda7c2602fb..578a52461fdb 100644 --- a/arch/arm/mach-lh7a40x/common.h +++ b/arch/arm/mach-lh7a40x/common.h | |||
@@ -13,4 +13,4 @@ extern struct sys_timer lh7a40x_timer; | |||
13 | extern void lh7a400_init_irq (void); | 13 | extern void lh7a400_init_irq (void); |
14 | extern void lh7a404_init_irq (void); | 14 | extern void lh7a404_init_irq (void); |
15 | 15 | ||
16 | #define IRQ_DISPATCH(irq) irq_desc[irq].handle ((irq), &irq_desc[irq], regs) | 16 | #define IRQ_DISPATCH(irq) desc_handle_irq((irq),(irq_desc + irq), regs) |
diff --git a/arch/arm/mach-omap1/fpga.c b/arch/arm/mach-omap1/fpga.c index 7c08f6c2e1d0..c12a78335625 100644 --- a/arch/arm/mach-omap1/fpga.c +++ b/arch/arm/mach-omap1/fpga.c | |||
@@ -102,7 +102,7 @@ void innovator_fpga_IRQ_demux(unsigned int irq, struct irqdesc *desc, | |||
102 | fpga_irq++, stat >>= 1) { | 102 | fpga_irq++, stat >>= 1) { |
103 | if (stat & 1) { | 103 | if (stat & 1) { |
104 | d = irq_desc + fpga_irq; | 104 | d = irq_desc + fpga_irq; |
105 | d->handle(fpga_irq, d, regs); | 105 | desc_handle_irq(fpga_irq, d, regs); |
106 | } | 106 | } |
107 | } | 107 | } |
108 | } | 108 | } |
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c index 6cf35f674464..539b596005fc 100644 --- a/arch/arm/mach-pxa/irq.c +++ b/arch/arm/mach-pxa/irq.c | |||
@@ -157,7 +157,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc, | |||
157 | mask >>= 2; | 157 | mask >>= 2; |
158 | do { | 158 | do { |
159 | if (mask & 1) | 159 | if (mask & 1) |
160 | desc->handle(irq, desc, regs); | 160 | desc_handle_irq(irq, desc, regs); |
161 | irq++; | 161 | irq++; |
162 | desc++; | 162 | desc++; |
163 | mask >>= 1; | 163 | mask >>= 1; |
@@ -172,7 +172,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc, | |||
172 | desc = irq_desc + irq; | 172 | desc = irq_desc + irq; |
173 | do { | 173 | do { |
174 | if (mask & 1) | 174 | if (mask & 1) |
175 | desc->handle(irq, desc, regs); | 175 | desc_handle_irq(irq, desc, regs); |
176 | irq++; | 176 | irq++; |
177 | desc++; | 177 | desc++; |
178 | mask >>= 1; | 178 | mask >>= 1; |
@@ -187,7 +187,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc, | |||
187 | desc = irq_desc + irq; | 187 | desc = irq_desc + irq; |
188 | do { | 188 | do { |
189 | if (mask & 1) | 189 | if (mask & 1) |
190 | desc->handle(irq, desc, regs); | 190 | desc_handle_irq(irq, desc, regs); |
191 | irq++; | 191 | irq++; |
192 | desc++; | 192 | desc++; |
193 | mask >>= 1; | 193 | mask >>= 1; |
@@ -203,7 +203,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc, | |||
203 | desc = irq_desc + irq; | 203 | desc = irq_desc + irq; |
204 | do { | 204 | do { |
205 | if (mask & 1) | 205 | if (mask & 1) |
206 | desc->handle(irq, desc, regs); | 206 | desc_handle_irq(irq, desc, regs); |
207 | irq++; | 207 | irq++; |
208 | desc++; | 208 | desc++; |
209 | mask >>= 1; | 209 | mask >>= 1; |
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c index 6309853b59be..923f6eb774c0 100644 --- a/arch/arm/mach-pxa/lubbock.c +++ b/arch/arm/mach-pxa/lubbock.c | |||
@@ -84,7 +84,7 @@ static void lubbock_irq_handler(unsigned int irq, struct irqdesc *desc, | |||
84 | if (likely(pending)) { | 84 | if (likely(pending)) { |
85 | irq = LUBBOCK_IRQ(0) + __ffs(pending); | 85 | irq = LUBBOCK_IRQ(0) + __ffs(pending); |
86 | desc = irq_desc + irq; | 86 | desc = irq_desc + irq; |
87 | desc->handle(irq, desc, regs); | 87 | desc_handle_irq(irq, desc, regs); |
88 | } | 88 | } |
89 | pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled; | 89 | pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled; |
90 | } while (pending); | 90 | } while (pending); |
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c index 827b7b5a5be8..85fdb5b1470a 100644 --- a/arch/arm/mach-pxa/mainstone.c +++ b/arch/arm/mach-pxa/mainstone.c | |||
@@ -72,7 +72,7 @@ static void mainstone_irq_handler(unsigned int irq, struct irqdesc *desc, | |||
72 | if (likely(pending)) { | 72 | if (likely(pending)) { |
73 | irq = MAINSTONE_IRQ(0) + __ffs(pending); | 73 | irq = MAINSTONE_IRQ(0) + __ffs(pending); |
74 | desc = irq_desc + irq; | 74 | desc = irq_desc + irq; |
75 | desc->handle(irq, desc, regs); | 75 | desc_handle_irq(irq, desc, regs); |
76 | } | 76 | } |
77 | pending = MST_INTSETCLR & mainstone_irq_enabled; | 77 | pending = MST_INTSETCLR & mainstone_irq_enabled; |
78 | } while (pending); | 78 | } while (pending); |
diff --git a/arch/arm/mach-s3c2410/bast-irq.c b/arch/arm/mach-s3c2410/bast-irq.c index 5e5bbe893cbb..49914709fa09 100644 --- a/arch/arm/mach-s3c2410/bast-irq.c +++ b/arch/arm/mach-s3c2410/bast-irq.c | |||
@@ -124,7 +124,7 @@ bast_irq_pc104_demux(unsigned int irq, | |||
124 | irqno = bast_pc104_irqs[i]; | 124 | irqno = bast_pc104_irqs[i]; |
125 | desc = irq_desc + irqno; | 125 | desc = irq_desc + irqno; |
126 | 126 | ||
127 | desc->handle(irqno, desc, regs); | 127 | desc_handle_irq(irqno, desc, regs); |
128 | } | 128 | } |
129 | 129 | ||
130 | stat >>= 1; | 130 | stat >>= 1; |
diff --git a/arch/arm/mach-s3c2410/irq.c b/arch/arm/mach-s3c2410/irq.c index 67138797866a..66d8c068e940 100644 --- a/arch/arm/mach-s3c2410/irq.c +++ b/arch/arm/mach-s3c2410/irq.c | |||
@@ -496,11 +496,11 @@ static void s3c_irq_demux_adc(unsigned int irq, | |||
496 | if (subsrc != 0) { | 496 | if (subsrc != 0) { |
497 | if (subsrc & 1) { | 497 | if (subsrc & 1) { |
498 | mydesc = irq_desc + IRQ_TC; | 498 | mydesc = irq_desc + IRQ_TC; |
499 | mydesc->handle( IRQ_TC, mydesc, regs); | 499 | desc_handle_irq(IRQ_TC, mydesc, regs); |
500 | } | 500 | } |
501 | if (subsrc & 2) { | 501 | if (subsrc & 2) { |
502 | mydesc = irq_desc + IRQ_ADC; | 502 | mydesc = irq_desc + IRQ_ADC; |
503 | mydesc->handle(IRQ_ADC, mydesc, regs); | 503 | desc_handle_irq(IRQ_ADC, mydesc, regs); |
504 | } | 504 | } |
505 | } | 505 | } |
506 | } | 506 | } |
@@ -529,17 +529,17 @@ static void s3c_irq_demux_uart(unsigned int start, | |||
529 | desc = irq_desc + start; | 529 | desc = irq_desc + start; |
530 | 530 | ||
531 | if (subsrc & 1) | 531 | if (subsrc & 1) |
532 | desc->handle(start, desc, regs); | 532 | desc_handle_irq(start, desc, regs); |
533 | 533 | ||
534 | desc++; | 534 | desc++; |
535 | 535 | ||
536 | if (subsrc & 2) | 536 | if (subsrc & 2) |
537 | desc->handle(start+1, desc, regs); | 537 | desc_handle_irq(start+1, desc, regs); |
538 | 538 | ||
539 | desc++; | 539 | desc++; |
540 | 540 | ||
541 | if (subsrc & 4) | 541 | if (subsrc & 4) |
542 | desc->handle(start+2, desc, regs); | 542 | desc_handle_irq(start+2, desc, regs); |
543 | } | 543 | } |
544 | } | 544 | } |
545 | 545 | ||
diff --git a/arch/arm/mach-s3c2410/s3c2440-irq.c b/arch/arm/mach-s3c2410/s3c2440-irq.c index 7cb9912242a3..278d0044c85d 100644 --- a/arch/arm/mach-s3c2410/s3c2440-irq.c +++ b/arch/arm/mach-s3c2410/s3c2440-irq.c | |||
@@ -64,11 +64,11 @@ static void s3c_irq_demux_wdtac97(unsigned int irq, | |||
64 | if (subsrc != 0) { | 64 | if (subsrc != 0) { |
65 | if (subsrc & 1) { | 65 | if (subsrc & 1) { |
66 | mydesc = irq_desc + IRQ_S3C2440_WDT; | 66 | mydesc = irq_desc + IRQ_S3C2440_WDT; |
67 | mydesc->handle( IRQ_S3C2440_WDT, mydesc, regs); | 67 | desc_handle_irq(IRQ_S3C2440_WDT, mydesc, regs); |
68 | } | 68 | } |
69 | if (subsrc & 2) { | 69 | if (subsrc & 2) { |
70 | mydesc = irq_desc + IRQ_S3C2440_AC97; | 70 | mydesc = irq_desc + IRQ_S3C2440_AC97; |
71 | mydesc->handle(IRQ_S3C2440_AC97, mydesc, regs); | 71 | desc_handle_irq(IRQ_S3C2440_AC97, mydesc, regs); |
72 | } | 72 | } |
73 | } | 73 | } |
74 | } | 74 | } |
@@ -122,11 +122,11 @@ static void s3c_irq_demux_cam(unsigned int irq, | |||
122 | if (subsrc != 0) { | 122 | if (subsrc != 0) { |
123 | if (subsrc & 1) { | 123 | if (subsrc & 1) { |
124 | mydesc = irq_desc + IRQ_S3C2440_CAM_C; | 124 | mydesc = irq_desc + IRQ_S3C2440_CAM_C; |
125 | mydesc->handle( IRQ_S3C2440_WDT, mydesc, regs); | 125 | desc_handle_irq(IRQ_S3C2440_CAM_C, mydesc, regs); |
126 | } | 126 | } |
127 | if (subsrc & 2) { | 127 | if (subsrc & 2) { |
128 | mydesc = irq_desc + IRQ_S3C2440_CAM_P; | 128 | mydesc = irq_desc + IRQ_S3C2440_CAM_P; |
129 | mydesc->handle(IRQ_S3C2440_AC97, mydesc, regs); | 129 | desc_handle_irq(IRQ_S3C2440_CAM_P, mydesc, regs); |
130 | } | 130 | } |
131 | } | 131 | } |
132 | } | 132 | } |
diff --git a/arch/arm/mach-sa1100/irq.c b/arch/arm/mach-sa1100/irq.c index cc349bc1b7c2..c131a5201b5b 100644 --- a/arch/arm/mach-sa1100/irq.c +++ b/arch/arm/mach-sa1100/irq.c | |||
@@ -126,7 +126,7 @@ sa1100_high_gpio_handler(unsigned int irq, struct irqdesc *desc, | |||
126 | mask >>= 11; | 126 | mask >>= 11; |
127 | do { | 127 | do { |
128 | if (mask & 1) | 128 | if (mask & 1) |
129 | desc->handle(irq, desc, regs); | 129 | desc_handle_irq(irq, desc, regs); |
130 | mask >>= 1; | 130 | mask >>= 1; |
131 | irq++; | 131 | irq++; |
132 | desc++; | 132 | desc++; |
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c index 1405383463ea..fc061641b7be 100644 --- a/arch/arm/mach-sa1100/neponset.c +++ b/arch/arm/mach-sa1100/neponset.c | |||
@@ -61,12 +61,12 @@ neponset_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *reg | |||
61 | 61 | ||
62 | if (irr & IRR_ETHERNET) { | 62 | if (irr & IRR_ETHERNET) { |
63 | d = irq_desc + IRQ_NEPONSET_SMC9196; | 63 | d = irq_desc + IRQ_NEPONSET_SMC9196; |
64 | d->handle(IRQ_NEPONSET_SMC9196, d, regs); | 64 | desc_handle_irq(IRQ_NEPONSET_SMC9196, d, regs); |
65 | } | 65 | } |
66 | 66 | ||
67 | if (irr & IRR_USAR) { | 67 | if (irr & IRR_USAR) { |
68 | d = irq_desc + IRQ_NEPONSET_USAR; | 68 | d = irq_desc + IRQ_NEPONSET_USAR; |
69 | d->handle(IRQ_NEPONSET_USAR, d, regs); | 69 | desc_handle_irq(IRQ_NEPONSET_USAR, d, regs); |
70 | } | 70 | } |
71 | 71 | ||
72 | desc->chip->unmask(irq); | 72 | desc->chip->unmask(irq); |
@@ -74,7 +74,7 @@ neponset_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *reg | |||
74 | 74 | ||
75 | if (irr & IRR_SA1111) { | 75 | if (irr & IRR_SA1111) { |
76 | d = irq_desc + IRQ_NEPONSET_SA1111; | 76 | d = irq_desc + IRQ_NEPONSET_SA1111; |
77 | d->handle(IRQ_NEPONSET_SA1111, d, regs); | 77 | desc_handle_irq(IRQ_NEPONSET_SA1111, d, regs); |
78 | } | 78 | } |
79 | } | 79 | } |
80 | } | 80 | } |
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index f01c0f8a2bb3..3c8862fde51a 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
@@ -108,7 +108,7 @@ sic_handle_irq(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs) | |||
108 | irq += IRQ_SIC_START; | 108 | irq += IRQ_SIC_START; |
109 | 109 | ||
110 | desc = irq_desc + irq; | 110 | desc = irq_desc + irq; |
111 | desc->handle(irq, desc, regs); | 111 | desc_handle_irq(irq, desc, regs); |
112 | } while (status); | 112 | } while (status); |
113 | } | 113 | } |
114 | 114 | ||
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 1c85b4e536c2..aa481ea3d702 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -590,7 +590,7 @@ static void gpio_irq_handler(unsigned int irq, struct irqdesc *desc, | |||
590 | if (!(isr & 1)) | 590 | if (!(isr & 1)) |
591 | continue; | 591 | continue; |
592 | d = irq_desc + gpio_irq; | 592 | d = irq_desc + gpio_irq; |
593 | d->handle(gpio_irq, d, regs); | 593 | desc_handle_irq(gpio_irq, d, regs); |
594 | } | 594 | } |
595 | } | 595 | } |
596 | 596 | ||
diff --git a/include/asm-arm/mach/irq.h b/include/asm-arm/mach/irq.h index bc9763db1d37..0ce6ca588d8c 100644 --- a/include/asm-arm/mach/irq.h +++ b/include/asm-arm/mach/irq.h | |||
@@ -92,6 +92,14 @@ struct irqdesc { | |||
92 | extern struct irqdesc irq_desc[]; | 92 | extern struct irqdesc irq_desc[]; |
93 | 93 | ||
94 | /* | 94 | /* |
95 | * Helpful inline function for calling irq descriptor handlers. | ||
96 | */ | ||
97 | static inline void desc_handle_irq(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs) | ||
98 | { | ||
99 | desc->handle(irq, desc, regs); | ||
100 | } | ||
101 | |||
102 | /* | ||
95 | * This is internal. Do not use it. | 103 | * This is internal. Do not use it. |
96 | */ | 104 | */ |
97 | extern void (*init_arch_irq)(void); | 105 | extern void (*init_arch_irq)(void); |