diff options
author | Dominik Sliwa <dominik.sliwa@toradex.com> | 2018-03-12 16:35:59 +0100 |
---|---|---|
committer | Dominik Sliwa <dominik.sliwa@toradex.com> | 2018-03-12 16:39:42 +0100 |
commit | 4d55f719bb2ac2875ad736e10f22a70eac7c3284 (patch) | |
tree | 7c2e423d25266a69ee2cdb71b76e78b9fad77591 /drivers/fsl_flexcan.c | |
parent | 4a48136e9c6d55ff9d9427a91ef43d44d26333d7 (diff) |
can, adc fixes
CAN:
-clear CANINTF_TX on read, this improves TX performance,
-fix possible race-condition and implement errata 5641
ADC
-allow for non-bulk read
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Diffstat (limited to 'drivers/fsl_flexcan.c')
-rw-r--r-- | drivers/fsl_flexcan.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/fsl_flexcan.c b/drivers/fsl_flexcan.c index 6c7e0bd..09add9e 100644 --- a/drivers/fsl_flexcan.c +++ b/drivers/fsl_flexcan.c @@ -1281,6 +1281,7 @@ void FLEXCAN_TransferHandleIRQ(CAN_Type *base, flexcan_handle_t *handle) /* Get current State of Message Buffer. */ switch (handle->mbState[result]) { +#if 0 /* Solve Rx Data Frame. */ case kFLEXCAN_StateRxData: status = FLEXCAN_ReadRxMb(base, result, handle->mbFrameBuf[result]); @@ -1300,19 +1301,15 @@ void FLEXCAN_TransferHandleIRQ(CAN_Type *base, flexcan_handle_t *handle) } FLEXCAN_TransferAbortReceive(base, handle, result); break; - +#endif + /* Solve Tx Remote Frame. */ + case kFLEXCAN_StateTxRemote: /* fall through */ /* Solve Tx Data Frame. */ case kFLEXCAN_StateTxData: status = kStatus_FLEXCAN_TxIdle; FLEXCAN_TransferAbortSend(base, handle, result); break; - /* Solve Tx Remote Frame. */ - case kFLEXCAN_StateTxRemote: - handle->mbState[result] = kFLEXCAN_StateRxRemote; - status = kStatus_FLEXCAN_TxSwitchToRx; - break; - default: status = kStatus_FLEXCAN_UnHandled; break; |