altos/lpc: Don't disable all interrupts when disabling one interrupt
authorKeith Packard <keithp@keithp.com>
Sat, 22 Jun 2013 02:40:59 +0000 (19:40 -0700)
committerKeith Packard <keithp@keithp.com>
Sat, 22 Jun 2013 07:49:59 +0000 (00:49 -0700)
The nvic iser and icer registers read value indicates all enabled
interrupts, icer writes disable the set interrupts. Re-writing icer
with the current value ends up disabling all interrupts, not exactly
what we wanted.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/lpc/lpc.h

index f13ec61529860876c0b5217fa90e92a38dc4ba89..8fb786493e2ac99aff002f8480968438ae9cc9f3 100644 (file)
@@ -1014,12 +1014,12 @@ extern struct lpc_nvic lpc_nvic;
 
 static inline void
 lpc_nvic_set_enable(int irq) {
-       lpc_nvic.iser |= (1 << irq);
+       lpc_nvic.iser = (1 << irq);
 }
 
 static inline void
 lpc_nvic_clear_enable(int irq) {
-       lpc_nvic.icer |= (1 << irq);
+       lpc_nvic.icer = (1 << irq);
 }
 
 static inline int