cc253x: DMA Changes

- Fixed DMA irq flag clearing
- Added a dma_reset helper

See Pull Request #18
This commit is contained in:
Philippe Rétornaz 2012-08-03 16:08:07 +02:00 committed by George Oikonomou
parent 898bd07810
commit eabaa0c8e4
3 changed files with 31 additions and 4 deletions

View file

@ -47,21 +47,21 @@ dma_isr(void) __interrupt (DMA_VECTOR)
DMAIF = 0;
#ifdef HAVE_RF_DMA
if((DMAIRQ & 1) != 0) {
DMAIRQ &= ~1;
DMAIRQ = ~1;
DMAARM=0x81;
rf_dma_callback_isr();
}
#endif
#ifdef SPI_DMA_RX
if((DMAIRQ & 0x08) != 0) {
DMAIRQ &= ~(1 << 3);
DMAIRQ = ~(1 << 3);
spi_rx_dma_callback();
}
#endif
#if DMA_ON
for(i = 0; i < DMA_CHANNEL_COUNT; i++) {
if((DMAIRQ & (1 << i)) != 0) {
DMAIRQ &= ~(1 << i);
DMAIRQ = ~(1 << i);
if(dma_callback[i] != 0) {
process_poll(dma_callback[i]);
}