projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Provide ISR-based code paths for SPI
[fw/altos]
/
src
/
stm
/
ao_dma_stm.c
diff --git
a/src/stm/ao_dma_stm.c
b/src/stm/ao_dma_stm.c
index 8379a1a533ca0ec5e19321910b1a9975a952f744..c44e66f0e142818ed012dc809bf9c04274bc1b35 100644
(file)
--- 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 {
#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];
};
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)
/* 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]);
else {
ao_dma_done[index] = 1;
ao_wakeup(&ao_dma_done[index]);
@@
-79,8
+80,9
@@
ao_dma_set_transfer(uint8_t index,
}
void
}
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;
}
ao_dma_config[index].isr = isr;
}