summaryrefslogtreecommitdiffstats
path: root/kernel/signal.c
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2014-07-18 11:52:12 +0200
committerLinus Walleij <linus.walleij@linaro.org>2014-07-23 16:29:14 +0200
commit190dc2e6844ad8a47838207cbe739c94d88d94cd (patch)
tree8d1533c42bec5070e0be972ac0674bb7d48a8efa /kernel/signal.c
parent14c8a620ba436511b1347c592633befa49535176 (diff)
downloadop-kernel-dev-190dc2e6844ad8a47838207cbe739c94d88d94cd.zip
op-kernel-dev-190dc2e6844ad8a47838207cbe739c94d88d94cd.tar.gz
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 <lars@metafoo.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'kernel/signal.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud