diff options
| author | robert-hh <robert@hammelrath.com> | 2022-11-29 13:05:44 +0100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-12-14 13:04:58 +1100 |
| commit | aea4174937d8ba2748c8a6700b2c6dbcee89f7a3 (patch) | |
| tree | b0186b6cb7c02feea22deea38e0923c4b27c1cb5 | |
| parent | 913f9ad5ad9bb446c6e4310b6b5eda310098a1cf (diff) | |
mimxrt/sdcard: Fix an error when writing large blocks.
Which happened when a read followed a large write.
| -rw-r--r-- | ports/mimxrt/sdcard.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ports/mimxrt/sdcard.c b/ports/mimxrt/sdcard.c index 20f76cc88..517206788 100644 --- a/ports/mimxrt/sdcard.c +++ b/ports/mimxrt/sdcard.c @@ -360,7 +360,8 @@ static status_t sdcard_transfer_blocking(USDHC_Type *base, usdhc_handle_t *handl status = kStatus_Timeout; for (int i = 0; i < timeout_ms * 100; i++) { // Wait until Data0 is low any more. Low indicates "Busy". - if ((transfer->data->txData == NULL) || (USDHC_GetPresentStatusFlags(base) & (uint32_t)kUSDHC_Data0LineLevelFlag) != 0) { + if (((transfer->data->txData == NULL) && (transfer->data->rxData == NULL)) || + (USDHC_GetPresentStatusFlags(base) & (uint32_t)kUSDHC_Data0LineLevelFlag) != 0) { // Not busy anymore or no TX-Data status = USDHC_TransferBlocking(base, &dma_config, transfer); if (status != kStatus_Success) { |
