mirror of https://github.com/ARMmbed/mbed-os.git
K64F DSPI Driver: Fix errors where DSPI state is incorrectly kept busy
Signed-off-by: Mahadevan Mahesh <Mahesh.Mahadevan@nxp.com>pull/3312/head
parent
5eb92ea1db
commit
d5fca6dab0
|
@ -162,8 +162,6 @@ status_t DSPI_MasterTransferEDMA(SPI_Type *base, dspi_master_edma_handle_t *hand
|
|||
|
||||
handle->txBuffIfNull = ((uint32_t)DSPI_DUMMY_DATA << 8) | DSPI_DUMMY_DATA;
|
||||
|
||||
handle->state = kDSPI_Busy;
|
||||
|
||||
dspi_command_data_config_t commandStruct;
|
||||
DSPI_StopTransfer(base);
|
||||
DSPI_FlushFifo(base, true, true);
|
||||
|
@ -222,6 +220,8 @@ status_t DSPI_MasterTransferEDMA(SPI_Type *base, dspi_master_edma_handle_t *hand
|
|||
return kStatus_InvalidArgument;
|
||||
}
|
||||
|
||||
handle->state = kDSPI_Busy;
|
||||
|
||||
DSPI_DisableDMA(base, kDSPI_RxDmaEnable | kDSPI_TxDmaEnable);
|
||||
|
||||
EDMA_SetCallback(handle->edmaRxRegToRxDataHandle, EDMA_DspiMasterCallback,
|
||||
|
@ -706,13 +706,13 @@ static void EDMA_DspiMasterCallback(edma_handle_t *edmaHandle,
|
|||
|
||||
DSPI_DisableDMA((dspiEdmaPrivateHandle->base), kDSPI_RxDmaEnable | kDSPI_TxDmaEnable);
|
||||
|
||||
dspiEdmaPrivateHandle->handle->state = kDSPI_Idle;
|
||||
|
||||
if (dspiEdmaPrivateHandle->handle->callback)
|
||||
{
|
||||
dspiEdmaPrivateHandle->handle->callback(dspiEdmaPrivateHandle->base, dspiEdmaPrivateHandle->handle,
|
||||
kStatus_Success, dspiEdmaPrivateHandle->handle->userData);
|
||||
}
|
||||
|
||||
dspiEdmaPrivateHandle->handle->state = kDSPI_Idle;
|
||||
}
|
||||
|
||||
void DSPI_MasterTransferAbortEDMA(SPI_Type *base, dspi_master_edma_handle_t *handle)
|
||||
|
|
Loading…
Reference in New Issue