Initial packet bits. Just testing transmission
[fw/altos] / src / ao_dma.c
index a4d45f14e932ccab33975039db6de69afae06987..704108e65dcabe90f4b00846dd4b927704cafbd2 100644 (file)
@@ -102,11 +102,13 @@ ao_dma_trigger(uint8_t id)
 }
 
 void
-ao_dma_abort(uint8_t id)
+ao_dma_abort(uint8_t id, uint8_t reason)
 {
        uint8_t mask = (1 << id);
        DMAARM = 0x80 | mask;
        DMAIRQ &= ~mask;
+       *(ao_dma_done[id]) |= reason;
+       ao_wakeup(ao_dma_done[id]);
 }
 
 void
@@ -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;
                }