Subject: [PATCH 0/9] ARM: Kirkwood: Convert to pinctrl

From: [email-masked] (Andrew Lunn)
Date: Sat, 27 Oct 2012 10:59:04 +0200

On Fri, Oct 26, 2012 at 10:17:46PM +0200, Michael Walle wrote:
> Hi Thomas.
> 
> Am Freitag 26 Oktober 2012, 20:45:05 schrieb Thomas Petazzoni:
> > Ah, this is interesting. It is not entirely surprising, since the gpio
> > driver is new. Even though it re-uses most of the previous gpio driver,
> > it is by far not impossible that there will be a few regressions.
> > 
> > Could you add a few debug prints to see if you're looping *inside* the
> > function (which I find pretty unlikely), or if the function gets called
> > over and over again? 
> 
> ah sorry, my bad. of course the handler is called forever:
> 
> mvebu_gpio_to_irq pin=8
> mvebu_gpio_irq_set_type pin=8
> mvebu_gpio_edge_irq_unmask
> mvebu_gpio_irq_handler irq=103
> mvebu_gpio_level_irq_mask irq=103
> mvebu_gpio_irq_handler irq=100
> mvebu_gpio_level_irq_mask irq=100
> mvebu_gpio_irq_handler irq=101
> mvebu_gpio_level_irq_mask irq=101
> mvebu_gpio_irq_handler irq=102
> mvebu_gpio_level_irq_mask irq=102
> mvebu_gpio_irq_handler irq=103
> mvebu_gpio_level_irq_mask irq=103
> mvebu_gpio_irq_handler irq=112
> mvebu_gpio_level_irq_mask irq=112
> mvebu_gpio_irq_handler irq=103
> mvebu_gpio_level_irq_mask irq=103
> mvebu_gpio_irq_handler irq=103
> mvebu_gpio_level_irq_mask irq=103
> mvebu_gpio_irq_handler irq=103
> mvebu_gpio_level_irq_mask irq=103
> mvebu_gpio_irq_handler irq=103
> mvebu_gpio_level_irq_mask irq=103
> mvebu_gpio_irq_handler irq=103
> mvebu_gpio_level_irq_mask irq=103
> mvebu_gpio_irq_handler irq=103
> mvebu_gpio_level_irq_mask irq=103
> mvebu_gpio_irq_handler irq=103
> mvebu_gpio_level_irq_mask irq=103
> mvebu_gpio_irq_handler irq=103

That makes me think edge vs level triggering.

For gpio-keys you want edge triggered interrupts, but if the
controller is setup for level, you would see this.

Try adding some debug into the function mvebu_gpio_irq_set_type()

    Andrew