diff options
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/host/sdhci.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 4ff966ca33c2..6bfd95823da7 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -2830,10 +2830,13 @@ static void sdhci_cmd_irq(struct sdhci_host *host, u32 intmask, u32 *mask) * If the card did not receive the command or returned an * error which prevented it sending data, the data phase * will time out. + * + * Even in case of cmd INDEX OR ENDBIT error we + * handle it the same way. */ if (host->cmd->data && - (intmask & (SDHCI_INT_CRC | SDHCI_INT_TIMEOUT)) == - SDHCI_INT_CRC) { + (((intmask & (SDHCI_INT_CRC | SDHCI_INT_TIMEOUT)) == + SDHCI_INT_CRC) || (host->cmd->error == -EILSEQ))) { host->cmd = NULL; return; } |