RE: [PATCH] gpio: mpc8xxx: Correct irq handler function

From: Gang Liu
Date: Mon Oct 24 2016 - 00:01:54 EST



> On Fri, Oct 21, 2016 at 9:31 AM, Liu Gang <Gang.Liu@xxxxxxx> wrote:
>
> > From the beginning of the gpio-mpc8xxx.c, the "handle_level_irq"
> > has being used to handle GPIO interrupts in the PowerPC/Layerscape
> > platforms. But actually, almost all PowerPC/Layerscape platforms
> > assert an interrupt request upon either a high-to-low change or any
> > change on the state of the signal.
> >
> > So the "handle_level_irq" is not reasonable for PowerPC/Layerscape
> > GPIO interrupt, it should be "handle_edge_irq". Otherwise the system
> > may lost some interrupts from the PIN's state changes.
> >
> > Signed-off-by: Liu Gang <Gang.Liu@xxxxxxx>
>
> Yes and especially so since this irqchip implements .irq_ack() and unless you
> use the edge handler it will never be called.
>
> Patch applied for fixes, tell me if it also needs to go into stable.
>
[Liu Gang] yes, please also put it into stable. Thanks!

> If you want to look closer at this driver, I think it is possible to simplify it quite a
> bit by using GPIOLIB_IRQCHIP like a few other drivers, for example gpio-pl061.c.
> Patches accepted :)
>
> Yours,
> Linus Walleij