summaryrefslogtreecommitdiff
path: root/src/ao_dma.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ao_dma.c')
-rw-r--r--src/ao_dma.c6
1 files changed, 4 insertions, 2 deletions
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;
}