pinctrl: bcm2835: Workaround for edge IRQ loss
authorPhil Elwell <phil@raspberrypi.com>
Fri, 5 May 2023 10:25:48 +0000 (11:25 +0100)
committerDom Cobley <popcornmix@gmail.com>
Mon, 19 Feb 2024 11:33:31 +0000 (11:33 +0000)
commited38a343b05925c3515728556080f8837b59779d
tree611f7b6c0eebca96c9dea264a24de9fbb98321dd
parentfabd018f62b1a544c1c0941a551d8ff01129ba41
pinctrl: bcm2835: Workaround for edge IRQ loss

It has been observed that edge events can be lost when GPIO edges occur
close to each other. Investigation suggests this is due to a hardware
bug, although no mechanism has been identified.

Work around the event loss by moving the IRQ acknowledgement into the
main ISR, adding missing events by explicit level-change detection.

See: https://forums.raspberrypi.com/viewtopic.php?t=350295

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
drivers/pinctrl/bcm/pinctrl-bcm2835.c