diff options
Diffstat (limited to 'drivers/mmc/mmci.c')
| -rw-r--r-- | drivers/mmc/mmci.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/mmc/mmci.c b/drivers/mmc/mmci.c index e9b80e920266..ccfe6561be24 100644 --- a/drivers/mmc/mmci.c +++ b/drivers/mmc/mmci.c | |||
| @@ -42,6 +42,8 @@ mmci_request_end(struct mmci_host *host, struct mmc_request *mrq) | |||
| 42 | { | 42 | { |
| 43 | writel(0, host->base + MMCICOMMAND); | 43 | writel(0, host->base + MMCICOMMAND); |
| 44 | 44 | ||
| 45 | BUG_ON(host->data); | ||
| 46 | |||
| 45 | host->mrq = NULL; | 47 | host->mrq = NULL; |
| 46 | host->cmd = NULL; | 48 | host->cmd = NULL; |
| 47 | 49 | ||
| @@ -198,6 +200,8 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd, | |||
| 198 | } | 200 | } |
| 199 | 201 | ||
| 200 | if (!cmd->data || cmd->error != MMC_ERR_NONE) { | 202 | if (!cmd->data || cmd->error != MMC_ERR_NONE) { |
| 203 | if (host->data) | ||
| 204 | mmci_stop_data(host); | ||
| 201 | mmci_request_end(host, cmd->mrq); | 205 | mmci_request_end(host, cmd->mrq); |
| 202 | } else if (!(cmd->data->flags & MMC_DATA_READ)) { | 206 | } else if (!(cmd->data->flags & MMC_DATA_READ)) { |
| 203 | mmci_start_data(host, cmd->data); | 207 | mmci_start_data(host, cmd->data); |
