OSDN Git Service

mmc: core: Add sd discard timeout
authorAvri Altman <avri.altman@wdc.com>
Tue, 26 Feb 2019 15:10:25 +0000 (17:10 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 28 Feb 2019 08:16:12 +0000 (09:16 +0100)
The busy timeout is 250msec per discard command.

Signed-off-by: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/core.c

index 681b089..2d415cb 100644 (file)
@@ -51,6 +51,7 @@
 
 /* The max erase timeout, used when host->max_busy_timeout isn't specified */
 #define MMC_ERASE_TIMEOUT_MS   (60 * 1000) /* 60 s */
+#define SD_DISCARD_TIMEOUT_MS  (250)
 
 static const unsigned freqs[] = { 400000, 300000, 200000, 100000 };
 
@@ -1619,6 +1620,12 @@ static unsigned int mmc_sd_erase_timeout(struct mmc_card *card,
 {
        unsigned int erase_timeout;
 
+       /* for DISCARD none of the below calculation applies.
+        * the busy timeout is 250msec per discard command.
+        */
+       if (arg == SD_DISCARD_ARG)
+               return SD_DISCARD_TIMEOUT_MS;
+
        if (card->ssr.erase_timeout) {
                /* Erase timeout specified in SD Status Register (SSR) */
                erase_timeout = card->ssr.erase_timeout * qty +