projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'mjb/master'
[fw/altos]
/
src
/
stm
/
ao_usb_stm.c
diff --git
a/src/stm/ao_usb_stm.c
b/src/stm/ao_usb_stm.c
index 8e7dacc53e2bf98e37d4bb3d0ad48cbc2ef1fa92..9379e5cd62efd19a8cdf994669fa171be0a9f11b 100644
(file)
--- a/
src/stm/ao_usb_stm.c
+++ b/
src/stm/ao_usb_stm.c
@@
-223,16
+223,16
@@
_ao_usb_set_stat_tx(int ep, uint32_t stat_tx)
static void
ao_usb_set_stat_tx(int ep, uint32_t stat_tx)
{
static void
ao_usb_set_stat_tx(int ep, uint32_t stat_tx)
{
-
cli
();
+
ao_arch_block_interrupts
();
_ao_usb_set_stat_tx(ep, stat_tx);
_ao_usb_set_stat_tx(ep, stat_tx);
-
sei
();
+
ao_arch_release_interrupts
();
}
static void
ao_usb_set_stat_rx(int ep, uint32_t stat_rx) {
uint32_t epr_write, epr_old;
}
static void
ao_usb_set_stat_rx(int ep, uint32_t stat_rx) {
uint32_t epr_write, epr_old;
-
cli
();
+
ao_arch_block_interrupts
();
epr_write = epr_old = stm_usb.epr[ep];
epr_write &= STM_USB_EPR_PRESERVE_MASK;
epr_write |= STM_USB_EPR_INVARIANT;
epr_write = epr_old = stm_usb.epr[ep];
epr_write &= STM_USB_EPR_PRESERVE_MASK;
epr_write |= STM_USB_EPR_INVARIANT;
@@
-240,7
+240,7
@@
ao_usb_set_stat_rx(int ep, uint32_t stat_rx) {
STM_USB_EPR_STAT_RX_MASK << STM_USB_EPR_STAT_RX,
stat_rx << STM_USB_EPR_STAT_RX);
stm_usb.epr[ep] = epr_write;
STM_USB_EPR_STAT_RX_MASK << STM_USB_EPR_STAT_RX,
stat_rx << STM_USB_EPR_STAT_RX);
stm_usb.epr[ep] = epr_write;
-
sei
();
+
ao_arch_release_interrupts
();
}
/*
}
/*
@@
-251,7
+251,7
@@
static void
ao_usb_init_ep(uint8_t ep, uint32_t addr, uint32_t type, uint32_t stat_rx, uint32_t stat_tx)
{
uint32_t epr;
ao_usb_init_ep(uint8_t ep, uint32_t addr, uint32_t type, uint32_t stat_rx, uint32_t stat_tx)
{
uint32_t epr;
-
cli
();
+
ao_arch_block_interrupts
();
epr = stm_usb.epr[ep];
epr = ((0 << STM_USB_EPR_CTR_RX) |
(epr & (1 << STM_USB_EPR_DTOG_RX)) |
epr = stm_usb.epr[ep];
epr = ((0 << STM_USB_EPR_CTR_RX) |
(epr & (1 << STM_USB_EPR_DTOG_RX)) |
@@
-267,7
+267,7
@@
ao_usb_init_ep(uint8_t ep, uint32_t addr, uint32_t type, uint32_t stat_rx, uint3
(stat_tx << STM_USB_EPR_STAT_TX)) |
(addr << STM_USB_EPR_EA));
stm_usb.epr[ep] = epr;
(stat_tx << STM_USB_EPR_STAT_TX)) |
(addr << STM_USB_EPR_EA));
stm_usb.epr[ep] = epr;
-
sei
();
+
ao_arch_release_interrupts
();
debug ("writing epr[%d] 0x%08x wrote 0x%08x\n",
ep, epr, stm_usb.epr[ep]);
}
debug ("writing epr[%d] 0x%08x wrote 0x%08x\n",
ep, epr, stm_usb.epr[ep]);
}
@@
-873,10
+873,10
@@
_ao_usb_out_recv(void)
ao_usb_set_stat_rx(AO_USB_OUT_EPR, STM_USB_EPR_STAT_RX_VALID);
}
ao_usb_set_stat_rx(AO_USB_OUT_EPR, STM_USB_EPR_STAT_RX_VALID);
}
-static
char
+static
int
_ao_usb_pollchar(void)
{
_ao_usb_pollchar(void)
{
-
char
c;
+
uint8_t
c;
if (!ao_usb_running)
return AO_READ_AGAIN;
if (!ao_usb_running)
return AO_READ_AGAIN;
@@
-896,10
+896,10
@@
_ao_usb_pollchar(void)
return c;
}
return c;
}
-char
+int
ao_usb_pollchar(void)
{
ao_usb_pollchar(void)
{
-
char
c;
+
int
c;
ao_arch_block_interrupts();
c = _ao_usb_pollchar();
ao_arch_release_interrupts();
ao_arch_block_interrupts();
c = _ao_usb_pollchar();
ao_arch_release_interrupts();
@@
-909,7
+909,7
@@
ao_usb_pollchar(void)
char
ao_usb_getchar(void)
{
char
ao_usb_getchar(void)
{
-
char
c;
+
int
c;
ao_arch_block_interrupts();
while ((c = _ao_usb_pollchar()) == AO_READ_AGAIN)
ao_arch_block_interrupts();
while ((c = _ao_usb_pollchar()) == AO_READ_AGAIN)