From a1c7967a56eada9b84914f1be2155fd5238d829b Mon Sep 17 00:00:00 2001 From: isiora Date: Wed, 21 Feb 2018 19:46:19 +0000 Subject: Callback invoked on all enabled and pending interrupt sources. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11529 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'os/hal/ports/SAMA') diff --git a/os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.c b/os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.c index 97ca3cfb0..fda40a7ba 100644 --- a/os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.c +++ b/os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.c @@ -114,13 +114,12 @@ OSAL_IRQ_HANDLER(dmaHandler) { gis &= ~(0x1 << chan); /** - * if channel interrupt is enabled and pending, and a callback exists, + * if a channel interrupt is enabled and pending, and a callback exists, * execute it */ uint32_t cis = dmaGetChannelInt(channel) & dmaGetChannelIntMask(channel); - if (cis & (XDMAC_CIS_BIS|XDMAC_CIS_LIS|XDMAC_CIS_DIS)) - if (channel->dma_func) - channel->dma_func(channel->dma_param, cis); + if (cis && channel->dma_func) + channel->dma_func(channel->dma_param, cis); } aicAckInt(); OSAL_IRQ_EPILOGUE(); -- cgit v1.2.3