Handling multiple GPIO controllers in 8xxx GPIO driver

Grant Likely grant.likely at secretlab.ca
Wed Sep 28 04:29:12 EST 2011


On Tue, Sep 27, 2011 at 04:59:28PM +0300, Felix Radensky wrote:
> Hi,
> 
> Looks like  8xxx GPIO driver cannot properly handle interrupts
> when multiple GPIO controllers exist in the system.
> 
> On Freescale P1022 there are 3 GPIO controllers. All 3 use
> the same interrupt line, internal interrupt 31. If all controllers
> are defined in device tree set_irq_chained_handler() is invoked
> 3 times with same  hardware irq number. The result is interrupt
> storm,  mpc8xxx_gpio_irq_cascade() is invoked indefinitely.
> 
> What would be the best way to fix the problem ?

The solution is to make the gpio driver register as a regular
interrupt handler, and not as a chained handler.

g.



More information about the Linuxppc-dev mailing list