|
|
Re: [PATCH] gpio/mxs: support irqs triggered by both edges |
On Mon, Mar 12, 2012 at 11:02 AM, Enrico Scholz <enrico.scholz@xxxxxxxxxxxxxxxxx> wrote: > Grant Likely <grant.likely@xxxxxxxxxxxx> writes: > >>> iMX28 silicon does not support irqs triggered by both gpio edges. Patch >>> emulates this behavior by configuring such irqs as level triggered and >>> by switching polarity in the interrupt handler. >> >> That looks dodgy and hacky. This will definitely miss interrupts if >> they come in too fast. > > Because patch calculates the trigger from the actual level, there should > not be missed more interrupts than with native edge-both support. Edge interrupt controllers latch interrupt requests. so that nothing gets missed. Level interrupt controllers do not. So, if the irq line toggles 3 times before the handling code gets executed, then the kernel will still only recognize 1 irq, not 3. >> I don't like this approach. What do you need it for? > > some drivers (e.g. gpio-keys, otg gpio-vbus, gpio-charger) are requesting > gpio based interrupts with IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING > flags. It is not possible to use such drivers without having EDGE_BOTH > support. > > > Enrico -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
[Linux ARM (vger)] [Linux ARM MSM] [Linux Omap] [Linux Arm] [Linux Tegra] [Fedora ARM] [eCos] [Linux Fastboot] [Gcc Help] [Git] [DCCP] [IETF Announce] [Security] [PDAs] [Linux] [Linux MIPS] [Yosemite Campsites] [Photos]
![]() |
![]() |