From 190dc2e6844ad8a47838207cbe739c94d88d94cd Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Fri, 18 Jul 2014 11:52:12 +0200 Subject: [PATCH] gpio: zynq: Clear pending interrupt when enabling a IRQ The Zynq GPIO controller does not disable the interrupt detection when the interrupt is masked and only disables the propagation of the interrupt. This means when the controller detects an interrupt condition while the interrupt is logically disabled (and masked) it will propagate the recorded interrupt event once the interrupt is enabled. This will cause the interrupt consumer to see spurious interrupts to prevent this first make sure that the interrupt is not asserted and then enable it. E.g. when a interrupt is requested with request_irq() it will be configured according to the requested type (edge/level triggered, etc.) after that it will be enabled. But the detection circuit might have already registered a false interrupt before the interrupt type was correctly configured and once the interrupt is unmasked this false interrupt will be propagated and the interrupt handler for the just request interrupt will called. Signed-off-by: Lars-Peter Clausen Signed-off-by: Linus Walleij --- Reading git-format-patch failed