sdmc timeout enhance

This commit is contained in:
刘可亮
2023-09-14 10:45:52 +08:00
parent 564e22b32f
commit fd82989fb2

View File

@@ -187,15 +187,15 @@ void aic_sdmc_request(struct aic_sdmc *host, struct aic_sdmc_cmd *cmd,
s32 ret = 0, flags = 0, i;
u32 retry = SDMC_TIMEOUT;
u32 mask = 0;
u32 timeout = 500;
u32 start = aic_get_time_ms();
u32 timeout = 500000;
u32 start = aic_get_time_us();
struct bounce_buffer bbstate;
ALLOC_CACHE_ALIGN_BUFFER(struct aic_sdmc_idma_desc, cur_idma,
data ? DIV_ROUND_UP(data->blks, 8) : 0);
if (cmd->cmd_code != MMC_CMD_STOP_TRANSMISSION) {
while (hal_sdmc_is_busy(&host->host)) {
if (aic_get_time_ms() - start > timeout) {
if (aic_get_time_us() - start > timeout) {
pr_warn("Data transfer is busy\n");
cmd->err = -1;
return;
@@ -305,8 +305,6 @@ void aic_sdmc_request(struct aic_sdmc *host, struct aic_sdmc_cmd *cmd,
data->flags == MMC_DATA_READ);
}
aicos_udelay(100);
return;
}