mmc: rtsx_pci: Use the provided busy timeout from the mmc core
authorUlf Hansson <ulf.hansson@linaro.org>
Mon, 25 Jul 2016 23:16:59 +0000 (01:16 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Fri, 29 Jul 2016 09:29:04 +0000 (11:29 +0200)
The rtsx_pci driver is using a fixed 3s timeout for R1B responses, which
in some cases isn't suffient. For example, erase/discard requests may
require longer timeouts.

Instead of always using a fixed timeout, let's use the per request
calculated busy timeout from the mmc core.

Cc: Micky Ching <micky_ching@realsil.com.cn>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Mauro Santos <registo.mailling@gmail.com>
drivers/mmc/host/rtsx_pci_sdmmc.c

index 93137483ecde93fc509328c9445b8c61c65f8a48..6158b96cdd47115a42253eeeb83bd3fc053d86c1 100644 (file)
@@ -244,7 +244,7 @@ static void sd_send_cmd_get_rsp(struct realtek_pci_sdmmc *host,
        stat_idx = sd_status_index(rsp_type);
 
        if (rsp_type == SD_RSP_TYPE_R1b)
-               timeout = 3000;
+               timeout = cmd->busy_timeout ? cmd->busy_timeout : 3000;
 
        if (cmd->opcode == SD_SWITCH_VOLTAGE) {
                err = rtsx_pci_write_register(pcr, SD_BUS_STAT,