|
@@ -42,6 +42,8 @@ mmci_request_end(struct mmci_host *host, struct mmc_request *mrq)
|
|
|
{
|
|
|
writel(0, host->base + MMCICOMMAND);
|
|
|
|
|
|
+ BUG_ON(host->data);
|
|
|
+
|
|
|
host->mrq = NULL;
|
|
|
host->cmd = NULL;
|
|
|
|
|
@@ -198,6 +200,8 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd,
|
|
|
}
|
|
|
|
|
|
if (!cmd->data || cmd->error != MMC_ERR_NONE) {
|
|
|
+ if (host->data)
|
|
|
+ mmci_stop_data(host);
|
|
|
mmci_request_end(host, cmd->mrq);
|
|
|
} else if (!(cmd->data->flags & MMC_DATA_READ)) {
|
|
|
mmci_start_data(host, cmd->data);
|