much more stable now but still I/O errors when copying large volumes
This commit is contained in:
@@ -103,7 +103,6 @@ static uint8_t xchg_spi(uint8_t byte)
|
|||||||
|
|
||||||
fifo = MCF_DSPI_DRFR;
|
fifo = MCF_DSPI_DRFR;
|
||||||
|
|
||||||
MCF_DSPI_DSR = 0xffffffff;
|
|
||||||
res = fifo & 0xff;
|
res = fifo & 0xff;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,20 +126,18 @@ uint32_t xhdi_read_write(uint16_t major, uint16_t minor, uint16_t rwflag,
|
|||||||
if (major == MY_MAJOR)
|
if (major == MY_MAJOR)
|
||||||
{
|
{
|
||||||
do {
|
do {
|
||||||
num_sectors = ((s_count > 127) ? 127 : s_count);
|
num_sectors = ((s_count > 128) ? 128 : s_count);
|
||||||
|
|
||||||
retries = 0;
|
retries = 0;
|
||||||
do {
|
do {
|
||||||
ret = ((rwflag & 1) ? disk_write(0, buf, recno, num_sectors) : disk_read(0, buf, recno, num_sectors));
|
ret = ((rwflag & 1) ? disk_write(0, buf, recno, num_sectors) : disk_read(0, buf, recno, num_sectors));
|
||||||
if (ret != RES_OK && retries > max_retries)
|
if (ret != RES_OK)
|
||||||
{
|
|
||||||
xprintf("error: %d\r\n", ret);
|
|
||||||
return ERROR;
|
|
||||||
}
|
|
||||||
else if (ret != RES_OK)
|
|
||||||
{
|
{
|
||||||
retries++;
|
retries++;
|
||||||
continue;
|
if (retries < max_retries) continue;
|
||||||
|
|
||||||
|
xprintf("error: %d\r\n", ret);
|
||||||
|
return ERROR;
|
||||||
}
|
}
|
||||||
} while (retries < max_retries && ret != RES_OK);
|
} while (retries < max_retries && ret != RES_OK);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user