summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-06-27 01:20:43 -0700
committerKeith Packard <keithp@keithp.com>2012-06-27 01:20:43 -0700
commita00aff5ee93ea9763b5c0466fcecc823cad135ef (patch)
tree389e713a0562ea873aa4d70204638e9b041d08c3
parent8fc643c9768f0db31a248331681af9490f5715af (diff)
altos: Don't try to grab radio while firing MM igniters
If you're in idle mode, you stop forever as the packet mode receiver will own the radio mutex forever. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--src/core/ao_ignite.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/ao_ignite.c b/src/core/ao_ignite.c
index 561b5513..d4aef153 100644
--- a/src/core/ao_ignite.c
+++ b/src/core/ao_ignite.c
@@ -81,7 +81,9 @@ ao_igniter_status(enum ao_igniter igniter)
void
ao_igniter_fire(enum ao_igniter igniter) __critical
{
+#ifndef MEGAMETRUM
ao_mutex_get(&ao_radio_mutex);
+#endif
ao_ignition[igniter].firing = 1;
switch(ao_config.ignite_mode) {
case AO_IGNITE_MODE_DUAL:
@@ -126,7 +128,9 @@ ao_igniter_fire(enum ao_igniter igniter) __critical
break;
}
ao_ignition[igniter].firing = 0;
+#ifndef MEGAMETRUM
ao_mutex_put(&ao_radio_mutex);
+#endif
}
void