diff options
author | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 03:17:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 03:17:25 -0400 |
commit | 64c4813d9ea0d646a0652bd9dcc5b40db6ddce69 (patch) | |
tree | 98658d9009182e79cb443cef67afbdc4bb3b8a48 | |
parent | babf68de5848f7e4b97c9c4a2d5e30598b825387 (diff) | |
parent | 664399e1fbdceb18da9c9c5534dedd62327c63e8 (diff) |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
34 files changed, 102 insertions, 92 deletions
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c index 41f12658c8b4..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 | } |
@@ -651,15 +651,15 @@ __locomo_probe(struct device *me, struct resource *mem, int irq) | |||
651 | return ret; | 651 | return ret; |
652 | } | 652 | } |
653 | 653 | ||
654 | static void __locomo_remove(struct locomo *lchip) | 654 | static int locomo_remove_child(struct device *dev, void *data) |
655 | { | 655 | { |
656 | struct list_head *l, *n; | 656 | device_unregister(dev); |
657 | 657 | return 0; | |
658 | list_for_each_safe(l, n, &lchip->dev->children) { | 658 | } |
659 | struct device *d = list_to_dev(l); | ||
660 | 659 | ||
661 | device_unregister(d); | 660 | static void __locomo_remove(struct locomo *lchip) |
662 | } | 661 | { |
662 | device_for_each_child(lchip->dev, NULL, locomo_remove_child); | ||
663 | 663 | ||
664 | if (lchip->irq != NO_IRQ) { | 664 | if (lchip->irq != NO_IRQ) { |
665 | set_irq_chained_handler(lchip->irq, NULL); | 665 | set_irq_chained_handler(lchip->irq, NULL); |
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index 38c2eb667eb9..1a47fbf9cbbc 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c | |||
@@ -268,8 +268,8 @@ static struct irqchip sa1111_low_chip = { | |||
268 | .mask = sa1111_mask_lowirq, | 268 | .mask = sa1111_mask_lowirq, |
269 | .unmask = sa1111_unmask_lowirq, | 269 | .unmask = sa1111_unmask_lowirq, |
270 | .retrigger = sa1111_retrigger_lowirq, | 270 | .retrigger = sa1111_retrigger_lowirq, |
271 | .type = sa1111_type_lowirq, | 271 | .set_type = sa1111_type_lowirq, |
272 | .wake = sa1111_wake_lowirq, | 272 | .set_wake = sa1111_wake_lowirq, |
273 | }; | 273 | }; |
274 | 274 | ||
275 | static void sa1111_mask_highirq(unsigned int irq) | 275 | static void sa1111_mask_highirq(unsigned int irq) |
@@ -364,8 +364,8 @@ static struct irqchip sa1111_high_chip = { | |||
364 | .mask = sa1111_mask_highirq, | 364 | .mask = sa1111_mask_highirq, |
365 | .unmask = sa1111_unmask_highirq, | 365 | .unmask = sa1111_unmask_highirq, |
366 | .retrigger = sa1111_retrigger_highirq, | 366 | .retrigger = sa1111_retrigger_highirq, |
367 | .type = sa1111_type_highirq, | 367 | .set_type = sa1111_type_highirq, |
368 | .wake = sa1111_wake_highirq, | 368 | .set_wake = sa1111_wake_highirq, |
369 | }; | 369 | }; |
370 | 370 | ||
371 | static void sa1111_setup_irq(struct sa1111 *sachip) | 371 | static void sa1111_setup_irq(struct sa1111 *sachip) |
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 395137a8fad2..3284118f356b 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
@@ -207,8 +207,8 @@ void enable_irq_wake(unsigned int irq) | |||
207 | unsigned long flags; | 207 | unsigned long flags; |
208 | 208 | ||
209 | spin_lock_irqsave(&irq_controller_lock, flags); | 209 | spin_lock_irqsave(&irq_controller_lock, flags); |
210 | if (desc->chip->wake) | 210 | if (desc->chip->set_wake) |
211 | desc->chip->wake(irq, 1); | 211 | desc->chip->set_wake(irq, 1); |
212 | spin_unlock_irqrestore(&irq_controller_lock, flags); | 212 | spin_unlock_irqrestore(&irq_controller_lock, flags); |
213 | } | 213 | } |
214 | EXPORT_SYMBOL(enable_irq_wake); | 214 | EXPORT_SYMBOL(enable_irq_wake); |
@@ -219,8 +219,8 @@ void disable_irq_wake(unsigned int irq) | |||
219 | unsigned long flags; | 219 | unsigned long flags; |
220 | 220 | ||
221 | spin_lock_irqsave(&irq_controller_lock, flags); | 221 | spin_lock_irqsave(&irq_controller_lock, flags); |
222 | if (desc->chip->wake) | 222 | if (desc->chip->set_wake) |
223 | desc->chip->wake(irq, 0); | 223 | desc->chip->set_wake(irq, 0); |
224 | spin_unlock_irqrestore(&irq_controller_lock, flags); | 224 | spin_unlock_irqrestore(&irq_controller_lock, flags); |
225 | } | 225 | } |
226 | EXPORT_SYMBOL(disable_irq_wake); | 226 | EXPORT_SYMBOL(disable_irq_wake); |
@@ -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. |
@@ -624,9 +624,9 @@ int set_irq_type(unsigned int irq, unsigned int type) | |||
624 | } | 624 | } |
625 | 625 | ||
626 | desc = irq_desc + irq; | 626 | desc = irq_desc + irq; |
627 | if (desc->chip->type) { | 627 | if (desc->chip->set_type) { |
628 | spin_lock_irqsave(&irq_controller_lock, flags); | 628 | spin_lock_irqsave(&irq_controller_lock, flags); |
629 | ret = desc->chip->type(irq, type); | 629 | ret = desc->chip->set_type(irq, type); |
630 | spin_unlock_irqrestore(&irq_controller_lock, flags); | 630 | spin_unlock_irqrestore(&irq_controller_lock, flags); |
631 | } | 631 | } |
632 | 632 | ||
@@ -846,8 +846,8 @@ unsigned long probe_irq_on(void) | |||
846 | 846 | ||
847 | irq_desc[i].probing = 1; | 847 | irq_desc[i].probing = 1; |
848 | irq_desc[i].triggered = 0; | 848 | irq_desc[i].triggered = 0; |
849 | if (irq_desc[i].chip->type) | 849 | if (irq_desc[i].chip->set_type) |
850 | irq_desc[i].chip->type(i, IRQT_PROBE); | 850 | irq_desc[i].chip->set_type(i, IRQT_PROBE); |
851 | irq_desc[i].chip->unmask(i); | 851 | irq_desc[i].chip->unmask(i); |
852 | irqs += 1; | 852 | irqs += 1; |
853 | } | 853 | } |
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index b2085735a2ba..826164945747 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -110,7 +110,7 @@ int __cpuinit __cpu_up(unsigned int cpu) | |||
110 | * We need to tell the secondary core where to find | 110 | * We need to tell the secondary core where to find |
111 | * its stack and the page tables. | 111 | * its stack and the page tables. |
112 | */ | 112 | */ |
113 | secondary_data.stack = (void *)idle->thread_info + THREAD_SIZE - 8; | 113 | secondary_data.stack = (void *)idle->thread_info + THREAD_START_SP; |
114 | secondary_data.pgdir = virt_to_phys(pgd); | 114 | secondary_data.pgdir = virt_to_phys(pgd); |
115 | wmb(); | 115 | wmb(); |
116 | 116 | ||
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 0c2713426dfd..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++; |
@@ -214,7 +214,7 @@ static struct irqchip imx_gpio_chip = { | |||
214 | .ack = imx_gpio_ack_irq, | 214 | .ack = imx_gpio_ack_irq, |
215 | .mask = imx_gpio_mask_irq, | 215 | .mask = imx_gpio_mask_irq, |
216 | .unmask = imx_gpio_unmask_irq, | 216 | .unmask = imx_gpio_unmask_irq, |
217 | .type = imx_gpio_irq_type, | 217 | .set_type = imx_gpio_irq_type, |
218 | }; | 218 | }; |
219 | 219 | ||
220 | void __init | 220 | void __init |
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 45b18658499f..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 | } |
@@ -380,10 +380,10 @@ static void ixp2000_GPIO_irq_unmask(unsigned int irq) | |||
380 | } | 380 | } |
381 | 381 | ||
382 | static struct irqchip ixp2000_GPIO_irq_chip = { | 382 | static struct irqchip ixp2000_GPIO_irq_chip = { |
383 | .type = ixp2000_GPIO_irq_type, | 383 | .ack = ixp2000_GPIO_irq_mask_ack, |
384 | .ack = ixp2000_GPIO_irq_mask_ack, | 384 | .mask = ixp2000_GPIO_irq_mask, |
385 | .mask = ixp2000_GPIO_irq_mask, | 385 | .unmask = ixp2000_GPIO_irq_unmask |
386 | .unmask = ixp2000_GPIO_irq_unmask | 386 | .set_type = ixp2000_GPIO_irq_type, |
387 | }; | 387 | }; |
388 | 388 | ||
389 | static void ixp2000_pci_irq_mask(unsigned int irq) | 389 | static void ixp2000_pci_irq_mask(unsigned int irq) |
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 f3cac43124a5..539b596005fc 100644 --- a/arch/arm/mach-pxa/irq.c +++ b/arch/arm/mach-pxa/irq.c | |||
@@ -133,7 +133,7 @@ static struct irqchip pxa_low_gpio_chip = { | |||
133 | .ack = pxa_ack_low_gpio, | 133 | .ack = pxa_ack_low_gpio, |
134 | .mask = pxa_mask_low_irq, | 134 | .mask = pxa_mask_low_irq, |
135 | .unmask = pxa_unmask_low_irq, | 135 | .unmask = pxa_unmask_low_irq, |
136 | .type = pxa_gpio_irq_type, | 136 | .set_type = pxa_gpio_irq_type, |
137 | }; | 137 | }; |
138 | 138 | ||
139 | /* | 139 | /* |
@@ -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; |
@@ -241,7 +241,7 @@ static struct irqchip pxa_muxed_gpio_chip = { | |||
241 | .ack = pxa_ack_muxed_gpio, | 241 | .ack = pxa_ack_muxed_gpio, |
242 | .mask = pxa_mask_muxed_gpio, | 242 | .mask = pxa_mask_muxed_gpio, |
243 | .unmask = pxa_unmask_muxed_gpio, | 243 | .unmask = pxa_unmask_muxed_gpio, |
244 | .type = pxa_gpio_irq_type, | 244 | .set_type = pxa_gpio_irq_type, |
245 | }; | 245 | }; |
246 | 246 | ||
247 | 247 | ||
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 973a5fe6769c..66d8c068e940 100644 --- a/arch/arm/mach-s3c2410/irq.c +++ b/arch/arm/mach-s3c2410/irq.c | |||
@@ -184,14 +184,14 @@ struct irqchip s3c_irq_level_chip = { | |||
184 | .ack = s3c_irq_maskack, | 184 | .ack = s3c_irq_maskack, |
185 | .mask = s3c_irq_mask, | 185 | .mask = s3c_irq_mask, |
186 | .unmask = s3c_irq_unmask, | 186 | .unmask = s3c_irq_unmask, |
187 | .wake = s3c_irq_wake | 187 | .set_wake = s3c_irq_wake |
188 | }; | 188 | }; |
189 | 189 | ||
190 | static struct irqchip s3c_irq_chip = { | 190 | static struct irqchip s3c_irq_chip = { |
191 | .ack = s3c_irq_ack, | 191 | .ack = s3c_irq_ack, |
192 | .mask = s3c_irq_mask, | 192 | .mask = s3c_irq_mask, |
193 | .unmask = s3c_irq_unmask, | 193 | .unmask = s3c_irq_unmask, |
194 | .wake = s3c_irq_wake | 194 | .set_wake = s3c_irq_wake |
195 | }; | 195 | }; |
196 | 196 | ||
197 | /* S3C2410_EINTMASK | 197 | /* S3C2410_EINTMASK |
@@ -350,16 +350,16 @@ static struct irqchip s3c_irqext_chip = { | |||
350 | .mask = s3c_irqext_mask, | 350 | .mask = s3c_irqext_mask, |
351 | .unmask = s3c_irqext_unmask, | 351 | .unmask = s3c_irqext_unmask, |
352 | .ack = s3c_irqext_ack, | 352 | .ack = s3c_irqext_ack, |
353 | .type = s3c_irqext_type, | 353 | .set_type = s3c_irqext_type, |
354 | .wake = s3c_irqext_wake | 354 | .set_wake = s3c_irqext_wake |
355 | }; | 355 | }; |
356 | 356 | ||
357 | static struct irqchip s3c_irq_eint0t4 = { | 357 | static struct irqchip s3c_irq_eint0t4 = { |
358 | .ack = s3c_irq_ack, | 358 | .ack = s3c_irq_ack, |
359 | .mask = s3c_irq_mask, | 359 | .mask = s3c_irq_mask, |
360 | .unmask = s3c_irq_unmask, | 360 | .unmask = s3c_irq_unmask, |
361 | .wake = s3c_irq_wake, | 361 | .set_wake = s3c_irq_wake, |
362 | .type = s3c_irqext_type, | 362 | .set_type = s3c_irqext_type, |
363 | }; | 363 | }; |
364 | 364 | ||
365 | /* mask values for the parent registers for each of the interrupt types */ | 365 | /* mask values for the parent registers for each of the interrupt types */ |
@@ -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/pm.c b/arch/arm/mach-s3c2410/pm.c index 13a48ee77484..fe57d966a34d 100644 --- a/arch/arm/mach-s3c2410/pm.c +++ b/arch/arm/mach-s3c2410/pm.c | |||
@@ -585,14 +585,16 @@ static int s3c2410_pm_enter(suspend_state_t state) | |||
585 | 585 | ||
586 | s3c2410_pm_check_store(); | 586 | s3c2410_pm_check_store(); |
587 | 587 | ||
588 | // need to make some form of time-delta | ||
589 | |||
590 | /* send the cpu to sleep... */ | 588 | /* send the cpu to sleep... */ |
591 | 589 | ||
592 | __raw_writel(0x00, S3C2410_CLKCON); /* turn off clocks over sleep */ | 590 | __raw_writel(0x00, S3C2410_CLKCON); /* turn off clocks over sleep */ |
593 | 591 | ||
594 | s3c2410_cpu_suspend(regs_save); | 592 | s3c2410_cpu_suspend(regs_save); |
595 | 593 | ||
594 | /* restore the cpu state */ | ||
595 | |||
596 | cpu_init(); | ||
597 | |||
596 | /* unset the return-from-sleep flag, to ensure reset */ | 598 | /* unset the return-from-sleep flag, to ensure reset */ |
597 | 599 | ||
598 | tmp = __raw_readl(S3C2410_GSTATUS2); | 600 | tmp = __raw_readl(S3C2410_GSTATUS2); |
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 66a929cb7bc5..c131a5201b5b 100644 --- a/arch/arm/mach-sa1100/irq.c +++ b/arch/arm/mach-sa1100/irq.c | |||
@@ -98,8 +98,8 @@ static struct irqchip sa1100_low_gpio_chip = { | |||
98 | .ack = sa1100_low_gpio_ack, | 98 | .ack = sa1100_low_gpio_ack, |
99 | .mask = sa1100_low_gpio_mask, | 99 | .mask = sa1100_low_gpio_mask, |
100 | .unmask = sa1100_low_gpio_unmask, | 100 | .unmask = sa1100_low_gpio_unmask, |
101 | .type = sa1100_gpio_type, | 101 | .set_type = sa1100_gpio_type, |
102 | .wake = sa1100_low_gpio_wake, | 102 | .set_wake = sa1100_low_gpio_wake, |
103 | }; | 103 | }; |
104 | 104 | ||
105 | /* | 105 | /* |
@@ -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++; |
@@ -181,8 +181,8 @@ static struct irqchip sa1100_high_gpio_chip = { | |||
181 | .ack = sa1100_high_gpio_ack, | 181 | .ack = sa1100_high_gpio_ack, |
182 | .mask = sa1100_high_gpio_mask, | 182 | .mask = sa1100_high_gpio_mask, |
183 | .unmask = sa1100_high_gpio_unmask, | 183 | .unmask = sa1100_high_gpio_unmask, |
184 | .type = sa1100_gpio_type, | 184 | .set_type = sa1100_gpio_type, |
185 | .wake = sa1100_high_gpio_wake, | 185 | .set_wake = sa1100_high_gpio_wake, |
186 | }; | 186 | }; |
187 | 187 | ||
188 | /* | 188 | /* |
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/mm/proc-arm6_7.S b/arch/arm/mm/proc-arm6_7.S index 0ee214b824ff..189ef6a71ba1 100644 --- a/arch/arm/mm/proc-arm6_7.S +++ b/arch/arm/mm/proc-arm6_7.S | |||
@@ -38,8 +38,8 @@ ENTRY(cpu_arm7_data_abort) | |||
38 | mrc p15, 0, r1, c5, c0, 0 @ get FSR | 38 | mrc p15, 0, r1, c5, c0, 0 @ get FSR |
39 | mrc p15, 0, r0, c6, c0, 0 @ get FAR | 39 | mrc p15, 0, r0, c6, c0, 0 @ get FAR |
40 | ldr r8, [r0] @ read arm instruction | 40 | ldr r8, [r0] @ read arm instruction |
41 | tst r8, #1 << 20 @ L = 1 -> write? | 41 | tst r8, #1 << 20 @ L = 0 -> write? |
42 | orreq r1, r1, #1 << 8 @ yes. | 42 | orreq r1, r1, #1 << 11 @ yes. |
43 | and r7, r8, #15 << 24 | 43 | and r7, r8, #15 << 24 |
44 | add pc, pc, r7, lsr #22 @ Now branch to the relevant processing routine | 44 | add pc, pc, r7, lsr #22 @ Now branch to the relevant processing routine |
45 | nop | 45 | nop |
@@ -71,8 +71,8 @@ ENTRY(cpu_arm6_data_abort) | |||
71 | mrc p15, 0, r1, c5, c0, 0 @ get FSR | 71 | mrc p15, 0, r1, c5, c0, 0 @ get FSR |
72 | mrc p15, 0, r0, c6, c0, 0 @ get FAR | 72 | mrc p15, 0, r0, c6, c0, 0 @ get FAR |
73 | ldr r8, [r2] @ read arm instruction | 73 | ldr r8, [r2] @ read arm instruction |
74 | tst r8, #1 << 20 @ L = 1 -> write? | 74 | tst r8, #1 << 20 @ L = 0 -> write? |
75 | orreq r1, r1, #1 << 8 @ yes. | 75 | orreq r1, r1, #1 << 11 @ yes. |
76 | and r7, r8, #14 << 24 | 76 | and r7, r8, #14 << 24 |
77 | teq r7, #8 << 24 @ was it ldm/stm | 77 | teq r7, #8 << 24 @ was it ldm/stm |
78 | movne pc, lr | 78 | movne pc, lr |
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/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c index 3e23cd461fb1..325c992f7d8f 100644 --- a/drivers/pcmcia/pxa2xx_base.c +++ b/drivers/pcmcia/pxa2xx_base.c | |||
@@ -246,7 +246,7 @@ static void __exit pxa2xx_pcmcia_exit(void) | |||
246 | driver_unregister(&pxa2xx_pcmcia_driver); | 246 | driver_unregister(&pxa2xx_pcmcia_driver); |
247 | } | 247 | } |
248 | 248 | ||
249 | module_init(pxa2xx_pcmcia_init); | 249 | fs_initcall(pxa2xx_pcmcia_init); |
250 | module_exit(pxa2xx_pcmcia_exit); | 250 | module_exit(pxa2xx_pcmcia_exit); |
251 | 251 | ||
252 | MODULE_AUTHOR("Stefan Eletzhofer <stefan.eletzhofer@inquant.de> and Ian Molton <spyro@f2s.com>"); | 252 | MODULE_AUTHOR("Stefan Eletzhofer <stefan.eletzhofer@inquant.de> and Ian Molton <spyro@f2s.com>"); |
diff --git a/drivers/pcmcia/pxa2xx_mainstone.c b/drivers/pcmcia/pxa2xx_mainstone.c index 5309734e1687..bbe69b07ce50 100644 --- a/drivers/pcmcia/pxa2xx_mainstone.c +++ b/drivers/pcmcia/pxa2xx_mainstone.c | |||
@@ -196,7 +196,7 @@ static void __exit mst_pcmcia_exit(void) | |||
196 | platform_device_unregister(mst_pcmcia_device); | 196 | platform_device_unregister(mst_pcmcia_device); |
197 | } | 197 | } |
198 | 198 | ||
199 | module_init(mst_pcmcia_init); | 199 | fs_initcall(mst_pcmcia_init); |
200 | module_exit(mst_pcmcia_exit); | 200 | module_exit(mst_pcmcia_exit); |
201 | 201 | ||
202 | MODULE_LICENSE("GPL"); | 202 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/pcmcia/pxa2xx_sharpsl.c b/drivers/pcmcia/pxa2xx_sharpsl.c index 42efe218867a..7bac2f7d8b3f 100644 --- a/drivers/pcmcia/pxa2xx_sharpsl.c +++ b/drivers/pcmcia/pxa2xx_sharpsl.c | |||
@@ -257,7 +257,7 @@ static void __exit sharpsl_pcmcia_exit(void) | |||
257 | platform_device_unregister(sharpsl_pcmcia_device); | 257 | platform_device_unregister(sharpsl_pcmcia_device); |
258 | } | 258 | } |
259 | 259 | ||
260 | module_init(sharpsl_pcmcia_init); | 260 | fs_initcall(sharpsl_pcmcia_init); |
261 | module_exit(sharpsl_pcmcia_exit); | 261 | module_exit(sharpsl_pcmcia_exit); |
262 | 262 | ||
263 | MODULE_DESCRIPTION("Sharp SL Series PCMCIA Support"); | 263 | MODULE_DESCRIPTION("Sharp SL Series PCMCIA Support"); |
diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c index e98bb3d80e7c..d4ed508b38be 100644 --- a/drivers/pcmcia/sa1100_generic.c +++ b/drivers/pcmcia/sa1100_generic.c | |||
@@ -126,5 +126,5 @@ MODULE_AUTHOR("John Dorsey <john+@cs.cmu.edu>"); | |||
126 | MODULE_DESCRIPTION("Linux PCMCIA Card Services: SA-11x0 Socket Controller"); | 126 | MODULE_DESCRIPTION("Linux PCMCIA Card Services: SA-11x0 Socket Controller"); |
127 | MODULE_LICENSE("Dual MPL/GPL"); | 127 | MODULE_LICENSE("Dual MPL/GPL"); |
128 | 128 | ||
129 | module_init(sa11x0_pcmcia_init); | 129 | fs_initcall(sa11x0_pcmcia_init); |
130 | module_exit(sa11x0_pcmcia_exit); | 130 | module_exit(sa11x0_pcmcia_exit); |
diff --git a/drivers/pcmcia/sa1111_generic.c b/drivers/pcmcia/sa1111_generic.c index b441f43a6a55..bb90a1448a53 100644 --- a/drivers/pcmcia/sa1111_generic.c +++ b/drivers/pcmcia/sa1111_generic.c | |||
@@ -189,7 +189,7 @@ static void __exit sa1111_drv_pcmcia_exit(void) | |||
189 | sa1111_driver_unregister(&pcmcia_driver); | 189 | sa1111_driver_unregister(&pcmcia_driver); |
190 | } | 190 | } |
191 | 191 | ||
192 | module_init(sa1111_drv_pcmcia_init); | 192 | fs_initcall(sa1111_drv_pcmcia_init); |
193 | module_exit(sa1111_drv_pcmcia_exit); | 193 | module_exit(sa1111_drv_pcmcia_exit); |
194 | 194 | ||
195 | MODULE_DESCRIPTION("SA1111 PCMCIA card socket driver"); | 195 | MODULE_DESCRIPTION("SA1111 PCMCIA card socket driver"); |
diff --git a/drivers/pcmcia/sa11xx_base.c b/drivers/pcmcia/sa11xx_base.c index db04ffb6f68c..59c5d968e9f6 100644 --- a/drivers/pcmcia/sa11xx_base.c +++ b/drivers/pcmcia/sa11xx_base.c | |||
@@ -189,7 +189,7 @@ static int __init sa11xx_pcmcia_init(void) | |||
189 | { | 189 | { |
190 | return 0; | 190 | return 0; |
191 | } | 191 | } |
192 | module_init(sa11xx_pcmcia_init); | 192 | fs_initcall(sa11xx_pcmcia_init); |
193 | 193 | ||
194 | static void __exit sa11xx_pcmcia_exit(void) {} | 194 | static void __exit sa11xx_pcmcia_exit(void) {} |
195 | 195 | ||
diff --git a/include/asm-arm/mach/irq.h b/include/asm-arm/mach/irq.h index a43a353f6c7b..0ce6ca588d8c 100644 --- a/include/asm-arm/mach/irq.h +++ b/include/asm-arm/mach/irq.h | |||
@@ -42,11 +42,11 @@ struct irqchip { | |||
42 | /* | 42 | /* |
43 | * Set the type of the IRQ. | 43 | * Set the type of the IRQ. |
44 | */ | 44 | */ |
45 | int (*type)(unsigned int, unsigned int); | 45 | int (*set_type)(unsigned int, unsigned int); |
46 | /* | 46 | /* |
47 | * Set wakeup-enable on the selected IRQ | 47 | * Set wakeup-enable on the selected IRQ |
48 | */ | 48 | */ |
49 | int (*wake)(unsigned int, unsigned int); | 49 | int (*set_wake)(unsigned int, unsigned int); |
50 | 50 | ||
51 | #ifdef CONFIG_SMP | 51 | #ifdef CONFIG_SMP |
52 | /* | 52 | /* |
@@ -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); |