diff --git a/sources/mmc.c b/sources/mmc.c index f576a63..21494f9 100644 --- a/sources/mmc.c +++ b/sources/mmc.c @@ -103,7 +103,6 @@ static uint8_t xchg_spi(uint8_t byte) fifo = MCF_DSPI_DRFR; - MCF_DSPI_DSR = 0xffffffff; res = fifo & 0xff; return res; } diff --git a/sources/xhdi_sd.c b/sources/xhdi_sd.c index 3834710..4a42cb4 100644 --- a/sources/xhdi_sd.c +++ b/sources/xhdi_sd.c @@ -126,20 +126,18 @@ uint32_t xhdi_read_write(uint16_t major, uint16_t minor, uint16_t rwflag, if (major == MY_MAJOR) { do { - num_sectors = ((s_count > 127) ? 127 : s_count); + num_sectors = ((s_count > 128) ? 128 : s_count); retries = 0; do { ret = ((rwflag & 1) ? disk_write(0, buf, recno, num_sectors) : disk_read(0, buf, recno, num_sectors)); - if (ret != RES_OK && retries > max_retries) - { - xprintf("error: %d\r\n", ret); - return ERROR; - } - else if (ret != RES_OK) + if (ret != RES_OK) { retries++; - continue; + if (retries < max_retries) continue; + + xprintf("error: %d\r\n", ret); + return ERROR; } } while (retries < max_retries && ret != RES_OK);