|
@@ -1267,7 +1267,8 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd,
|
|
|
mmci_request_end(host, host->mrq);
|
|
|
} else if (sbc) {
|
|
|
mmci_start_command(host, host->mrq->cmd, 0);
|
|
|
- } else if (!(cmd->data->flags & MMC_DATA_READ)) {
|
|
|
+ } else if (!host->variant->datactrl_first &&
|
|
|
+ !(cmd->data->flags & MMC_DATA_READ)) {
|
|
|
mmci_start_data(host, cmd->data);
|
|
|
}
|
|
|
}
|
|
@@ -1531,7 +1532,8 @@ static void mmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
|
|
if (mrq->data)
|
|
|
mmci_get_next_data(host, mrq->data);
|
|
|
|
|
|
- if (mrq->data && mrq->data->flags & MMC_DATA_READ)
|
|
|
+ if (mrq->data &&
|
|
|
+ (host->variant->datactrl_first || mrq->data->flags & MMC_DATA_READ))
|
|
|
mmci_start_data(host, mrq->data);
|
|
|
|
|
|
if (mrq->sbc)
|