diff options
Diffstat (limited to 'arch/arm/mach-lpc32xx/irq.c')
| -rw-r--r-- | arch/arm/mach-lpc32xx/irq.c | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-lpc32xx/irq.c b/arch/arm/mach-lpc32xx/irq.c index d3bf9c11fd6..c74de01ab5b 100644 --- a/arch/arm/mach-lpc32xx/irq.c +++ b/arch/arm/mach-lpc32xx/irq.c @@ -309,9 +309,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);  |