diff options
author | Christian Lamparter <chunkeey@gmail.com> | 2019-06-15 19:13:30 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2019-09-04 13:16:44 +0200 |
commit | 40379b0ec64d8ff17b4d34f261224fb72ceac9db (patch) | |
tree | f88bc8c6bc85e2141272e2a367c51dd2c0769d5f /target/linux/apm821xx | |
parent | f79e6e01bd78b84316418f9981d7d1b6c3900e8c (diff) | |
download | upstream-40379b0ec64d8ff17b4d34f261224fb72ceac9db.tar.gz upstream-40379b0ec64d8ff17b4d34f261224fb72ceac9db.tar.bz2 upstream-40379b0ec64d8ff17b4d34f261224fb72ceac9db.zip |
apm821xx: fix bogus key-presses on boot
"There are often transient line events when
the system is powered up and initialized and it
is often necessary for the gpio_chip driver to
clear any interrupt flags in hardware before
setting up the gpio chip, especially the
irqchip portions of it."
<http://lists.infradead.org/pipermail/openwrt-devel/2019-June/017630.html>
This patch adds a fix for the APM821XX's interrupt
controller to clear any bogus pending toggled
interrupts that happens on various APM821XX boards
on boot.
The patch also changes the debouce-interval from the
default 5ms debounce interval to 60ms all around.
The default setting caused on occasions that the button
state became stuck in a pressed state, even though the
button was released.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(backported from commit 971f31bedcad0a954a4a4e79140346cc896d352e)
Diffstat (limited to 'target/linux/apm821xx')
-rw-r--r-- | target/linux/apm821xx/patches-4.14/100-powerpc-4xx-uic-clear-pending-interrupt-after-irq-ty.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/target/linux/apm821xx/patches-4.14/100-powerpc-4xx-uic-clear-pending-interrupt-after-irq-ty.patch b/target/linux/apm821xx/patches-4.14/100-powerpc-4xx-uic-clear-pending-interrupt-after-irq-ty.patch new file mode 100644 index 0000000000..ee4eeb6963 --- /dev/null +++ b/target/linux/apm821xx/patches-4.14/100-powerpc-4xx-uic-clear-pending-interrupt-after-irq-ty.patch @@ -0,0 +1,30 @@ +From 9b84ad676e248a3e3c81db7f5d39e1739b3780aa Mon Sep 17 00:00:00 2001 +From: Christian Lamparter <chunkeey@gmail.com> +Date: Sat, 15 Jun 2019 16:35:26 +0200 +Subject: [PATCH] powerpc/4xx/uic: clear pending interrupt after irq type/pol + change + +When testing out gpio-keys with a button, a spurious +interrupt (and therefore a key press or release event) +gets triggered as soon as the driver enables the irq +line for the first time. + +This patch clears any potential bogus generated interrupt +that was caused by the switching of the associated irq's +type and polarity. + +Signed-off-by: Christian Lamparter <chunkeey@gmail.com> +--- + arch/powerpc/platforms/4xx/uic.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/powerpc/platforms/4xx/uic.c ++++ b/arch/powerpc/platforms/4xx/uic.c +@@ -158,6 +158,7 @@ static int uic_set_irq_type(struct irq_d + + mtdcr(uic->dcrbase + UIC_PR, pr); + mtdcr(uic->dcrbase + UIC_TR, tr); ++ mtdcr(uic->dcrbase + UIC_SR, ~mask); + + raw_spin_unlock_irqrestore(&uic->lock, flags); + |