aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-lpc32xx
diff options
context:
space:
mode:
authorRoland Stigge <stigge@antcom.de>2012-02-27 17:28:02 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-03-12 10:32:39 -0700
commit19399c348f59bb2aa2321efe6e29ece9797717f7 (patch)
treedc0222da63954c308a60f9b264e48e7aa0009c69 /arch/arm/mach-lpc32xx
parent280e54b164802662ff59ba9cc24b66595f9a6bb9 (diff)
downloadkernel_samsung_smdk4412-19399c348f59bb2aa2321efe6e29ece9797717f7.zip
kernel_samsung_smdk4412-19399c348f59bb2aa2321efe6e29ece9797717f7.tar.gz
kernel_samsung_smdk4412-19399c348f59bb2aa2321efe6e29ece9797717f7.tar.bz2
ARM: LPC32xx: irq.c: Clear latched event
commit 94ed7830cba4dce57b18a2926b5d826bfd184bd6 upstream. This patch fixes the wakeup disable function by clearing latched events. Signed-off-by: Roland Stigge <stigge@antcom.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/arm/mach-lpc32xx')
-rw-r--r--arch/arm/mach-lpc32xx/irq.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-lpc32xx/irq.c b/arch/arm/mach-lpc32xx/irq.c
index 4eae566..965b1d6 100644
--- a/arch/arm/mach-lpc32xx/irq.c
+++ b/arch/arm/mach-lpc32xx/irq.c
@@ -305,9 +305,18 @@ static int lpc32xx_irq_wake(struct irq_data *d, unsigned int state)
if (state)
eventreg |= lpc32xx_events[d->irq].mask;
- else
+ else {
eventreg &= ~lpc32xx_events[d->irq].mask;
+ /*
+ * When disabling the wakeup, clear the latched
+ * event
+ */
+ __raw_writel(lpc32xx_events[d->irq].mask,
+ lpc32xx_events[d->irq].
+ event_group->rawstat_reg);
+ }
+
__raw_writel(eventreg,
lpc32xx_events[d->irq].event_group->enab_reg);