|
@@ -305,11 +305,12 @@ mmc_write_blocks(struct mmc *mmc, ulong start, lbaint_t blkcnt, const void*src)
|
|
|
printf("mmc fail to send stop cmd\n");
|
|
|
return 0;
|
|
|
}
|
|
|
-
|
|
|
- /* Waiting for the ready status */
|
|
|
- mmc_send_status(mmc, timeout);
|
|
|
}
|
|
|
|
|
|
+ /* Waiting for the ready status */
|
|
|
+ if (mmc_send_status(mmc, timeout))
|
|
|
+ return 0;
|
|
|
+
|
|
|
return blkcnt;
|
|
|
}
|
|
|
|
|
@@ -341,7 +342,6 @@ int mmc_read_blocks(struct mmc *mmc, void *dst, ulong start, lbaint_t blkcnt)
|
|
|
{
|
|
|
struct mmc_cmd cmd;
|
|
|
struct mmc_data data;
|
|
|
- int timeout = 1000;
|
|
|
|
|
|
if (blkcnt > 1)
|
|
|
cmd.cmdidx = MMC_CMD_READ_MULTIPLE_BLOCK;
|
|
@@ -373,9 +373,6 @@ int mmc_read_blocks(struct mmc *mmc, void *dst, ulong start, lbaint_t blkcnt)
|
|
|
printf("mmc fail to send stop cmd\n");
|
|
|
return 0;
|
|
|
}
|
|
|
-
|
|
|
- /* Waiting for the ready status */
|
|
|
- mmc_send_status(mmc, timeout);
|
|
|
}
|
|
|
|
|
|
return blkcnt;
|
|
@@ -610,7 +607,8 @@ int mmc_switch(struct mmc *mmc, u8 set, u8 index, u8 value)
|
|
|
ret = mmc_send_cmd(mmc, &cmd, NULL);
|
|
|
|
|
|
/* Waiting for the ready status */
|
|
|
- mmc_send_status(mmc, timeout);
|
|
|
+ if (!ret)
|
|
|
+ ret = mmc_send_status(mmc, timeout);
|
|
|
|
|
|
return ret;
|
|
|
|