Merge master.kernel.org:/home/rmk/linux-2.6-arm

This commit is contained in:
Linus Torvalds 2006-02-24 16:00:36 -08:00
commit c946160e60

View File

@ -274,8 +274,18 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
gpio = &irq_desc[pin]; gpio = &irq_desc[pin];
while (isr) { while (isr) {
if (isr & 1) if (isr & 1) {
gpio->handle(pin, gpio, regs); if (unlikely(gpio->disable_depth)) {
/*
* The core ARM interrupt handler lazily disables IRQs so
* another IRQ must be generated before it actually gets
* here to be disabled on the GPIO controller.
*/
gpio_irq_mask(pin);
}
else
gpio->handle(pin, gpio, regs);
}
pin++; pin++;
gpio++; gpio++;
isr >>= 1; isr >>= 1;