summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/keyborg/runtime.c2
-rw-r--r--board/zinger/runtime.c8
2 files changed, 6 insertions, 4 deletions
diff --git a/board/keyborg/runtime.c b/board/keyborg/runtime.c
index e3a8021ef1..e86d591172 100644
--- a/board/keyborg/runtime.c
+++ b/board/keyborg/runtime.c
@@ -68,7 +68,7 @@ void tim2_interrupt(void)
if (STM32_TIM_CNT(3) == last_deadline >> 16) {
STM32_TIM_DIER(2) = 0;
task_clear_pending_irq(STM32_IRQ_TIM2);
- last_event = 1 << 29 /* task event wake */;
+ last_event = TASK_EVENT_TIMER;
need_wfi = 0;
} else {
need_wfi = 1;
diff --git a/board/zinger/runtime.c b/board/zinger/runtime.c
index 775afdccec..deaa87d6ab 100644
--- a/board/zinger/runtime.c
+++ b/board/zinger/runtime.c
@@ -56,7 +56,7 @@ void tim2_interrupt(void)
{
STM32_TIM_DIER(2) = 0; /* disable match interrupt */
task_clear_pending_irq(STM32_IRQ_TIM2);
- last_event = 1 << 29 /* task event wake */;
+ last_event = TASK_EVENT_TIMER;
}
DECLARE_IRQ(STM32_IRQ_TIM2, tim2_interrupt, 1);
@@ -85,10 +85,12 @@ uint32_t task_wait_event(int timeout_us)
asm volatile("wfi");
STM32_TIM_DIER(2) = 0; /* disable match interrupt */
- evt = last_event;
- last_event = 0;
asm volatile("cpsie i ; isb");
+ /* note: interrupt that woke us up will run here */
+
+ evt = last_event;
+ last_event = 0;
return evt;
}