Merge branch 'master' of git://git.gag.com/fw/altos
[fw/altos] / src / ao_dma.c
index a4d45f14e932ccab33975039db6de69afae06987..946666abc6ff9993410fa7c155479c43c6a1e511 100644 (file)
@@ -107,10 +107,12 @@ ao_dma_abort(uint8_t id)
        uint8_t mask = (1 << id);
        DMAARM = 0x80 | mask;
        DMAIRQ &= ~mask;
+       *(ao_dma_done[id]) |= AO_DMA_ABORTED;
+       ao_wakeup(ao_dma_done[id]);
 }
 
 void
-ao_dma_isr(void) interrupt 8
+ao_dma_isr(void) __interrupt 8
 {
        uint8_t id, mask;
 
@@ -122,7 +124,7 @@ ao_dma_isr(void) interrupt 8
                        DMAIF = 0;
                        /* Clear the completed ID */
                        DMAIRQ = ~mask;
-                       *(ao_dma_done[id]) = 1;
+                       *(ao_dma_done[id]) |= AO_DMA_DONE;
                        ao_wakeup(ao_dma_done[id]);
                        break;
                }