summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijay Viswanath <vviswana@codeaurora.org>2017-04-25 15:00:01 +0530
committerVeerabhadrarao Badiganti <vbadigan@codeaurora.org>2017-09-04 12:58:10 +0530
commit3cded02c6138f83288965c9aba033d069835f491 (patch)
treef5b7e7e5e1d361f99fe04162f2c5c9851e2a6962
parent55aa8417cad73e5f5609ebea582767b60595a508 (diff)
mmc: sdhci: Add logs when ignoring timeout due to quirk
Due to some quirks, hardware timeout interrupts of commands with R1B response get ignored. This is required as some commands take more time to complete than what hardware controller can wait. But when actual hardware timeout occurs due to faulty card or any other issue, the issue will appear as software timeout and the information that a hardware timeout occurred will be lost. So added logs through ratelimited prink and ring buffer so that the information will be present when debugging is required. Change-Id: Ib8fe83c792251c55889909282d2defe466a123e7 Signed-off-by: Vijay Viswanath <vviswana@codeaurora.org>
-rw-r--r--drivers/mmc/host/sdhci.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index f9d80b3bbcf9..5906bba0aeff 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3054,8 +3054,15 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
return;
}
if (host->quirks2 &
- SDHCI_QUIRK2_IGNORE_DATATOUT_FOR_R1BCMD)
+ SDHCI_QUIRK2_IGNORE_DATATOUT_FOR_R1BCMD) {
+ pr_err_ratelimited("%s: %s: ignoring interrupt: 0x%08x due to DATATOUT_FOR_R1B quirk\n",
+ mmc_hostname(host->mmc),
+ __func__, intmask);
+ MMC_TRACE(host->mmc,
+ "%s: Quirk ignoring intr: 0x%08x\n",
+ __func__, intmask);
return;
+ }
if (intmask & SDHCI_INT_DATA_TIMEOUT) {
host->cmd->error = -ETIMEDOUT;
tasklet_schedule(&host->finish_tasklet);