summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/ao_btm.c24
-rw-r--r--src/drivers/ao_packet.c8
-rw-r--r--src/drivers/ao_packet_master.c2
3 files changed, 21 insertions, 13 deletions
diff --git a/src/drivers/ao_btm.c b/src/drivers/ao_btm.c
index f193ac8e..f3816047 100644
--- a/src/drivers/ao_btm.c
+++ b/src/drivers/ao_btm.c
@@ -312,18 +312,20 @@ __xdata struct ao_task ao_btm_task;
#endif
void
-ao_btm_check_link() __critical
+ao_btm_check_link()
{
- /* Check the pin and configure the interrupt detector to wait for the
- * pin to flip the other way
- */
- if (BT_LINK_PIN) {
- ao_btm_connected = 0;
- PICTL |= BT_PICTL_ICON;
- } else {
- ao_btm_connected = 1;
- PICTL &= ~BT_PICTL_ICON;
- }
+ ao_arch_critical(
+ /* Check the pin and configure the interrupt detector to wait for the
+ * pin to flip the other way
+ */
+ if (BT_LINK_PIN) {
+ ao_btm_connected = 0;
+ PICTL |= BT_PICTL_ICON;
+ } else {
+ ao_btm_connected = 1;
+ PICTL &= ~BT_PICTL_ICON;
+ }
+ );
}
void
diff --git a/src/drivers/ao_packet.c b/src/drivers/ao_packet.c
index 2bada949..3c1e7a18 100644
--- a/src/drivers/ao_packet.c
+++ b/src/drivers/ao_packet.c
@@ -155,6 +155,9 @@ ao_packet_flush(void)
void
ao_packet_putchar(char c) __reentrant
{
+ /* No need to block interrupts, all variables here
+ * are only manipulated in task context
+ */
while (ao_packet_tx_used == AO_PACKET_MAX && ao_packet_enable) {
#if PACKET_HAS_MASTER
ao_packet_flush();
@@ -167,8 +170,11 @@ ao_packet_putchar(char c) __reentrant
}
char
-ao_packet_pollchar(void) __critical
+ao_packet_pollchar(void)
{
+ /* No need to block interrupts, all variables here
+ * are only manipulated in task context
+ */
if (!ao_packet_enable)
return AO_READ_AGAIN;
diff --git a/src/drivers/ao_packet_master.c b/src/drivers/ao_packet_master.c
index e97a6648..481232df 100644
--- a/src/drivers/ao_packet_master.c
+++ b/src/drivers/ao_packet_master.c
@@ -18,7 +18,7 @@
#include "ao.h"
static char
-ao_packet_getchar(void) __critical
+ao_packet_getchar(void)
{
char c;
while ((c = ao_packet_pollchar()) == AO_READ_AGAIN) {