|
@@ -904,7 +904,7 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
|
|
|
static void sdhci_set_transfer_mode(struct sdhci_host *host,
|
|
|
struct mmc_command *cmd)
|
|
|
{
|
|
|
- u16 mode;
|
|
|
+ u16 mode = 0;
|
|
|
struct mmc_data *data = cmd->data;
|
|
|
|
|
|
if (data == NULL) {
|
|
@@ -922,9 +922,11 @@ static void sdhci_set_transfer_mode(struct sdhci_host *host,
|
|
|
|
|
|
WARN_ON(!host->data);
|
|
|
|
|
|
- mode = SDHCI_TRNS_BLK_CNT_EN;
|
|
|
+ if (!(host->quirks2 & SDHCI_QUIRK2_SUPPORT_SINGLE))
|
|
|
+ mode = SDHCI_TRNS_BLK_CNT_EN;
|
|
|
+
|
|
|
if (mmc_op_multi(cmd->opcode) || data->blocks > 1) {
|
|
|
- mode |= SDHCI_TRNS_MULTI;
|
|
|
+ mode = SDHCI_TRNS_BLK_CNT_EN | SDHCI_TRNS_MULTI;
|
|
|
/*
|
|
|
* If we are sending CMD23, CMD12 never gets sent
|
|
|
* on successful completion (so no Auto-CMD12).
|