X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fao_dma.c;h=704108e65dcabe90f4b00846dd4b927704cafbd2;hb=251b0971f049cbf2f8db79a32729d47441ce65f3;hp=a4d45f14e932ccab33975039db6de69afae06987;hpb=210dbaa23cdacf3a6f2d6e23493e96ee2ac9bca7;p=fw%2Faltos diff --git a/src/ao_dma.c b/src/ao_dma.c index a4d45f14..704108e6 100644 --- a/src/ao_dma.c +++ b/src/ao_dma.c @@ -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; }