aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/src
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/src')
-rw-r--r--os/hal/src/mmc_spi.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/os/hal/src/mmc_spi.c b/os/hal/src/mmc_spi.c
index 06f2594bf..079dcf3c0 100644
--- a/os/hal/src/mmc_spi.c
+++ b/os/hal/src/mmc_spi.c
@@ -665,10 +665,8 @@ bool_t mmcSequentialWrite(MMCDriver *mmcp, const uint8_t *buffer) {
spiSend(mmcp->spip, MMC_SECTOR_SIZE, buffer); /* Data. */
spiIgnore(mmcp->spip, 2); /* CRC ignored. */
spiReceive(mmcp->spip, 1, b);
- if ((b[0] & 0x1F) == 0x05) {
- wait(mmcp);
+ if ((b[0] & 0x1F) == 0x05)
return FALSE;
- }
/* Error.*/
spiUnselect(mmcp->spip);
@@ -701,6 +699,10 @@ bool_t mmcStopSequentialWrite(MMCDriver *mmcp) {
}
chSysUnlock();
+ /* Wait completion of the last write operation.*/
+ wait(mmcp);
+
+ /* Semd stop command.*/
spiSend(mmcp->spip, sizeof(stop), stop);
spiUnselect(mmcp->spip);