From fd82989fb2597d324d4bd25ddb61ca2e37e848dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8F=AF=E4=BA=AE?= Date: Thu, 14 Sep 2023 10:45:52 +0800 Subject: [PATCH] sdmc timeout enhance --- bsp/artinchip/drv_bare/sdmc/sdmc.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/bsp/artinchip/drv_bare/sdmc/sdmc.c b/bsp/artinchip/drv_bare/sdmc/sdmc.c index e6450506..5150715b 100644 --- a/bsp/artinchip/drv_bare/sdmc/sdmc.c +++ b/bsp/artinchip/drv_bare/sdmc/sdmc.c @@ -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; }