From be0ebdde26ed6aa4211c78d3050df515f67c0e1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Fr=C3=B6schle?= Date: Mon, 13 May 2013 14:06:36 +0000 Subject: [PATCH] read result of DSPI receiver fifo only after transfer has been finished completely (check with status register) --- sources/mmc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sources/mmc.c b/sources/mmc.c index 587ceaa..9b40840 100644 --- a/sources/mmc.c +++ b/sources/mmc.c @@ -101,8 +101,12 @@ static uint8_t xchg_spi(uint8_t byte) while (! (MCF_DSPI_DSR & MCF_DSPI_DSR_TCF)); /* wait until DSPI transfer complete */ MCF_DSPI_DSR = 0xffffffff; /* clear DSPI status register */ + while (! (MCF_DSPI_DSR & MCF_DSPI_DSR_TCF)); /* wait again for transfer to complete */ + fifo = MCF_DSPI_DRFR; - MCF_DSPI_DSR = 0xffffffff; + + MCF_DSPI_DSR = 0xffffffff; /* clear status register */ + res = fifo & 0xff; return res; }