X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstm%2Fao_dma_stm.c;fp=src%2Fstm%2Fao_dma_stm.c;h=c44e66f0e142818ed012dc809bf9c04274bc1b35;hb=c1ad8f443d5a9780a9897c79deda61241c0e34c2;hp=8379a1a533ca0ec5e19321910b1a9975a952f744;hpb=5d8b9d524d6424ff98dcc4155fe8b8bd892b6d8f;p=fw%2Faltos diff --git a/src/stm/ao_dma_stm.c b/src/stm/ao_dma_stm.c index 8379a1a5..c44e66f0 100644 --- a/src/stm/ao_dma_stm.c +++ b/src/stm/ao_dma_stm.c @@ -20,7 +20,8 @@ #define NUM_DMA 7 struct ao_dma_config { - void (*isr)(int index); + void (*isr)(int arg); + int arg; }; uint8_t ao_dma_done[NUM_DMA]; @@ -39,7 +40,7 @@ ao_dma_isr(uint8_t index) { /* Ack them */ stm_dma.ifcr = isr; if (ao_dma_config[index].isr) - (*ao_dma_config[index].isr)(index); + (*ao_dma_config[index].isr)(ao_dma_config[index].arg); else { ao_dma_done[index] = 1; ao_wakeup(&ao_dma_done[index]); @@ -79,8 +80,9 @@ ao_dma_set_transfer(uint8_t index, } void -ao_dma_set_isr(uint8_t index, void (*isr)(int)) +ao_dma_set_isr(uint8_t index, void (*isr)(int), int arg) { + ao_dma_config[index].arg = arg; ao_dma_config[index].isr = isr; }