aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Lamparter2019-06-15 17:23:13 +0200
committerMichael Ellerman2019-07-03 15:19:36 +1000
commit3ab3a0689e74e6aa5b41360bc18861040ddef5b1 (patch)
tree37b7732eb1e65a2a6abe6a3e6ae9f7b879ba8c48
parent7b570361f6f66c91443541b19121038c076e7d64 (diff)
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> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r--arch/powerpc/platforms/4xx/uic.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/4xx/uic.c b/arch/powerpc/platforms/4xx/uic.c
index 8b4dd0da0839..9e27cfe27026 100644
--- 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_data *d, unsigned int flow_type)
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);