summaryrefslogtreecommitdiff
path: root/drivers/src/fsl_flexcan.c
diff options
context:
space:
mode:
authorDominik Sliwa <dominik.sliwa@toradex.com>2019-02-05 14:44:01 +0100
committerDominik Sliwa <dominik.sliwa@toradex.com>2019-02-06 12:13:32 +0100
commitdaac8f258addd3a1177d3aa84e0bf9737000c8de (patch)
tree474ca96af52f06bd8ada7bd1b783d936fdecba27 /drivers/src/fsl_flexcan.c
parent0bfd994031c82d18be9d7a8bf69126c2b7727efe (diff)
Revert "Move CAN data out of fifo in a thread not IRQ"
This reverts commit 46bfc66ac58289bc868d982e3b0ec46176302be0.
Diffstat (limited to 'drivers/src/fsl_flexcan.c')
-rw-r--r--drivers/src/fsl_flexcan.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/src/fsl_flexcan.c b/drivers/src/fsl_flexcan.c
index 45db478..2a07dc5 100644
--- a/drivers/src/fsl_flexcan.c
+++ b/drivers/src/fsl_flexcan.c
@@ -1295,12 +1295,12 @@ void FLEXCAN_TransferHandleIRQ(CAN_Type *base, flexcan_handle_t *handle)
break;
case kFLEXCAN_RxFifoFrameAvlFlag:
- //status = FLEXCAN_ReadRxFifo(base, handle->rxFifoFrameBuf);
- //if (kStatus_Success == status)
- //{
+ status = FLEXCAN_ReadRxFifo(base, handle->rxFifoFrameBuf);
+ if (kStatus_Success == status)
+ {
status = kStatus_FLEXCAN_RxFifoIdle;
- //}
- //FLEXCAN_TransferAbortReceiveFifo(base, handle);
+ }
+ FLEXCAN_TransferAbortReceiveFifo(base, handle);
break;
default:
@@ -1354,7 +1354,10 @@ void FLEXCAN_TransferHandleIRQ(CAN_Type *base, flexcan_handle_t *handle)
/* Calling Callback Function if has one. */
if (handle->callback != NULL)
- reschedule = handle->callback(base, handle, status, result, handle->userData);
+ {
+ if (handle->callback(base, handle, status, result, handle->userData) == pdTRUE)
+ reschedule = pdTRUE;
+ }
/* Reset return status */
status = kStatus_FLEXCAN_UnHandled;