diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/host/mmci.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index b93122636531..8324e3ec21c2 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c | |||
@@ -1144,16 +1144,17 @@ static irqreturn_t mmci_irq(int irq, void *dev_id) | |||
1144 | 1144 | ||
1145 | dev_dbg(mmc_dev(host->mmc), "irq0 (data+cmd) %08x\n", status); | 1145 | dev_dbg(mmc_dev(host->mmc), "irq0 (data+cmd) %08x\n", status); |
1146 | 1146 | ||
1147 | cmd = host->cmd; | ||
1148 | if (status & (MCI_CMDCRCFAIL|MCI_CMDTIMEOUT|MCI_CMDSENT| | ||
1149 | MCI_CMDRESPEND) && cmd) | ||
1150 | mmci_cmd_irq(host, cmd, status); | ||
1151 | |||
1147 | data = host->data; | 1152 | data = host->data; |
1148 | if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_STARTBITERR| | 1153 | if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_STARTBITERR| |
1149 | MCI_TXUNDERRUN|MCI_RXOVERRUN|MCI_DATAEND| | 1154 | MCI_TXUNDERRUN|MCI_RXOVERRUN|MCI_DATAEND| |
1150 | MCI_DATABLOCKEND) && data) | 1155 | MCI_DATABLOCKEND) && data) |
1151 | mmci_data_irq(host, data, status); | 1156 | mmci_data_irq(host, data, status); |
1152 | 1157 | ||
1153 | cmd = host->cmd; | ||
1154 | if (status & (MCI_CMDCRCFAIL|MCI_CMDTIMEOUT|MCI_CMDSENT|MCI_CMDRESPEND) && cmd) | ||
1155 | mmci_cmd_irq(host, cmd, status); | ||
1156 | |||
1157 | ret = 1; | 1158 | ret = 1; |
1158 | } while (status); | 1159 | } while (status); |
1159 | 1160 | ||