From: Christian Lamparter Date: Sat, 15 Jun 2019 15:23:13 +0000 (+0200) Subject: powerpc/4xx/uic: clear pending interrupt after irq type/pol change X-Git-Tag: v5.3-rc1~94^2~61 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3ab3a0689e74e6aa5b41360bc18861040ddef5b1;p=thirdparty%2Flinux.git 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 Signed-off-by: Michael Ellerman --- diff --git a/arch/powerpc/platforms/4xx/uic.c b/arch/powerpc/platforms/4xx/uic.c index 8b4dd0da08395..9e27cfe270268 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);