projects/linux·commit 0ef89ec2

mmc: mvsdio: Respect card busy time out from mmc core

0ef89ec2 · Ulf Hansson <[email protected]> · 2018-05-31 12:16:04 +02:00

Instead of using a hardcoded timeout of 5 * HZ jiffies, let's respect the
command busy timeout provided by the mmc core. This make the used timeout
more reliable.

Cc: Damien Thebault <[email protected]>
Signed-off-by: Ulf Hansson <[email protected]>
Tested-by: Damien Thebault <[email protected]>
Commit
0ef89ec24e7bfe17fb81ec222f3cd39bd5090efc
Parents
4ba9bf98

Changes

1 files changed · +3 −1

FileStatusAddDelContent
drivers/mmc/host/mvsdio.cmodified+3−1View file

drivers/mmc/host/mvsdio.c

View file
diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
index 210247b..4c70829 100644
--- a/drivers/mmc/host/mvsdio.c
+++ b/drivers/mmc/host/mvsdio.c
@@ -143,6 +143,7 @@ static void mvsd_request(struct mmc_host *mmc, struct mmc_request *mrq)
struct mmc_command *cmd = mrq->cmd;
u32 cmdreg = 0, xfer = 0, intr = 0;
unsigned long flags;
+ unsigned int timeout;
BUG_ON(host->mrq != NULL);
host->mrq = mrq;
@@ -234,7 +235,8 @@ static void mvsd_request(struct mmc_host *mmc, struct mmc_request *mrq)
mvsd_write(MVSD_NOR_INTR_EN, host->intr_en);
mvsd_write(MVSD_ERR_INTR_EN, 0xffff);
- mod_timer(&host->timer, jiffies + 5 * HZ);
+ timeout = cmd->busy_timeout ? cmd->busy_timeout : 5000;
+ mod_timer(&host->timer, jiffies + msecs_to_jiffies(timeout));
spin_unlock_irqrestore(&host->lock, flags);
}