summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSahitya Tummala <stummala@codeaurora.org>2017-04-24 16:14:17 +0530
committerVeerabhadrarao Badiganti <vbadigan@codeaurora.org>2017-09-04 12:56:15 +0530
commit55aa8417cad73e5f5609ebea582767b60595a508 (patch)
treecc3297df53c5c51923a242b0093fc7fc71fba91e
parent2c76acdba2368ec49b20c5b383275597ec505175 (diff)
mmc: sdhci: Fix SDHCI_QUIRK2_IGNORE_DATATOUT_FOR_R1BCMD handling
If this quirk is set, then data timeout interrupt must not be handled for R1B commands, as those commands may need larger timeout value (larger than max timeout that controller can handle). Change-Id: I7453b1914add21b47393b3eb1578d88e72da7406 Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
-rw-r--r--drivers/mmc/host/sdhci.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 0033fea0a800..f9d80b3bbcf9 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3041,11 +3041,6 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
* above in sdhci_cmd_irq().
*/
if (host->cmd && (host->cmd->flags & MMC_RSP_BUSY)) {
- if (intmask & SDHCI_INT_DATA_TIMEOUT) {
- host->cmd->error = -ETIMEDOUT;
- tasklet_schedule(&host->finish_tasklet);
- return;
- }
if (intmask & SDHCI_INT_DATA_END) {
/*
* Some cards handle busy-end interrupt
@@ -3061,6 +3056,11 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
if (host->quirks2 &
SDHCI_QUIRK2_IGNORE_DATATOUT_FOR_R1BCMD)
return;
+ if (intmask & SDHCI_INT_DATA_TIMEOUT) {
+ host->cmd->error = -ETIMEDOUT;
+ tasklet_schedule(&host->finish_tasklet);
+ return;
+ }
}
pr_err("%s: Got data interrupt 0x%08x even "