Skip to content

Commit

Permalink
[ARM] 3378/1: ixp2000: fix gpio interrupt handling
Browse files Browse the repository at this point in the history
Patch from Lennert Buytenhek

ixp2000 used to initially mark GPIO interrupts as invalid, and not
mark them valid until set_irq_type() was called, but this doesn't
work if you want to use request_irq() with the SA_TRIGGER_* flags.

So, just mark the GPIO interrupts valid from the beginning.  We
configure GPIOs as inputs when set_irq_type() is called anyway, so
this shouldn't be a problem.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Lennert Buytenhek authored and Russell King committed Mar 22, 2006
1 parent bec1b81 commit bd115ea
Showing 1 changed file with 1 addition and 12 deletions.
13 changes: 1 addition & 12 deletions arch/arm/mach-ixp2000/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,8 +288,6 @@ void gpio_line_config(int line, int direction)

local_irq_save(flags);
if (direction == GPIO_OUT) {
irq_desc[line + IRQ_IXP2000_GPIO0].valid = 0;

/* if it's an output, it ain't an interrupt anymore */
GPIO_IRQ_falling_edge &= ~(1 << line);
GPIO_IRQ_rising_edge &= ~(1 << line);
Expand Down Expand Up @@ -351,11 +349,6 @@ static int ixp2000_GPIO_irq_type(unsigned int irq, unsigned int type)
GPIO_IRQ_level_high &= ~(1 << line);
update_gpio_int_csrs();

/*
* Finally, mark the corresponding IRQ as valid.
*/
irq_desc[irq].valid = 1;

return 0;
}

Expand Down Expand Up @@ -506,14 +499,10 @@ void __init ixp2000_init_irq(void)
}
set_irq_chained_handler(IRQ_IXP2000_ERRSUM, ixp2000_err_irq_handler);

/*
* GPIO IRQs are invalid until someone sets the interrupt mode
* by calling set_irq_type().
*/
for (irq = IRQ_IXP2000_GPIO0; irq <= IRQ_IXP2000_GPIO7; irq++) {
set_irq_chip(irq, &ixp2000_GPIO_irq_chip);
set_irq_handler(irq, do_level_IRQ);
set_irq_flags(irq, 0);
set_irq_flags(irq, IRQF_VALID);
}
set_irq_chained_handler(IRQ_IXP2000_GPIO, ixp2000_GPIO_irq_handler);

Expand Down

0 comments on commit bd115ea

Please sign in to comment.