summaryrefslogtreecommitdiffstats
path: root/bsps/arm/atsam/include/libchip/include/xdmad.h
diff options
context:
space:
mode:
authorChristian Mauderer <christian.mauderer@embedded-brains.de>2020-11-09 09:16:51 +0100
committerChristian Mauderer <christian.mauderer@embedded-brains.de>2020-11-12 08:30:20 +0100
commitcab11b5b805b5fd54113b51992d900607870cb75 (patch)
treeb6338af09226d3f082dd655007724fa41751804e /bsps/arm/atsam/include/libchip/include/xdmad.h
parentbuild: Fix cache file placement (diff)
downloadrtems-cab11b5b805b5fd54113b51992d900607870cb75.tar.bz2
bsp/atsam: Fix XDMAD status
In "bsp/atsam: Simplify XDMAD_Handler()" (5f813694f68cee) the interrupt callback has been made unconditional. That allowed to avoid some special deadlock situations in error cases. But it removed part of the XDMAD status handling. This patch adds the ability to update the XDMAD status from the callback if that is necessary for the driver. Fixes #4173
Diffstat (limited to '')
-rw-r--r--bsps/arm/atsam/include/libchip/include/xdmad.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/bsps/arm/atsam/include/libchip/include/xdmad.h b/bsps/arm/atsam/include/libchip/include/xdmad.h
index 97e24c880b..cba3d052ab 100644
--- a/bsps/arm/atsam/include/libchip/include/xdmad.h
+++ b/bsps/arm/atsam/include/libchip/include/xdmad.h
@@ -241,6 +241,10 @@ extern eXdmadRC XDMAD_StartTransfer(sXdmad *pXdmad, uint32_t dwChannel);
extern void XDMAD_DoNothingCallback(uint32_t Channel, void *pArg, uint32_t status);
+extern bool XDMAD_UpdateStatusFromCallback(sXdmad *pXdmad,
+ uint32_t Channel,
+ uint32_t status);
+
extern eXdmadRC XDMAD_SetCallback(sXdmad *pXdmad,
uint32_t dwChannel,
XdmadTransferCallback fCallback,