[PATCH] imx/gpio: Use handle_level_irq

Richard Zhao linuxzsc at gmail.com
Fri Oct 23 07:27:08 EDT 2009


2009/10/21 Uwe Kleine-König <u.kleine-koenig at pengutronix.de>:
> Hello Sascha,
>
> On Tue, Oct 20, 2009 at 10:13:03AM +0200, Sascha Hauer wrote:
>> On Mon, Oct 19, 2009 at 10:19:28PM +0200, Uwe Kleine-König wrote:
>> > According to Russell King handle_edge_irq is only useful for "edge-based
>> > inputs where the controller does not remember transitions with the input
>> > masked."
>> >
>> > So using handle_edge_irq unconditionally for both edge and level irqs is
>> > wrong.  Testing showed that the controller does remember transitions
>> > while the interrupt is masked.  So use handle_level_irq unconditionally.
>>
>> As this fixes only rt kernels and we have no reports that something is
>> not working on non rt kernels I suggest putting this into the next merge
>> window.
> The PMIC on pcm038 doesn't work anymore with handle_edge_irq since I
> switched to using threaded irqs in the driver.  But as this won't hit
> mainline before the next merge window that is fine for me, too.
>
> Best regards
> Uwe
>
> --
> Pengutronix e.K.                              | Uwe Kleine-König            |
> Industrial Linux Solutions                    | http://www.pengutronix.de/  |
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

handle_level_irq may lost edge irq request. The controller won't
change ISR when irq's masked.
Why not decide to use handle_level_irq or handle_edge_irq in gpio_set_irq_type?

Thanks
Richard



More information about the linux-arm-kernel mailing list