Merge branch 'micropeak-1.1'
[fw/altos] / src / stm / ao_usb_stm.c
index 8e7dacc53e2bf98e37d4bb3d0ad48cbc2ef1fa92..9379e5cd62efd19a8cdf994669fa171be0a9f11b 100644 (file)
@@ -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)
 {
-       cli();
+       ao_arch_block_interrupts();
        _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;
 
-       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;
@@ -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;
-       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;
-       cli();
+       ao_arch_block_interrupts();
        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;
-       sei();
+       ao_arch_release_interrupts();
        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);
 }
 
-static char
+static int
 _ao_usb_pollchar(void)
 {
-       char c;
+       uint8_t c;
 
        if (!ao_usb_running)
                return AO_READ_AGAIN;
@@ -896,10 +896,10 @@ _ao_usb_pollchar(void)
        return c;
 }
 
-char
+int
 ao_usb_pollchar(void)
 {
-       char    c;
+       int     c;
        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    c;
+       int     c;
 
        ao_arch_block_interrupts();
        while ((c = _ao_usb_pollchar()) == AO_READ_AGAIN)