|
@@ -615,6 +615,11 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data)
|
|
|
if (data->flags & MMC_DATA_READ)
|
|
|
datactrl |= MCI_DPSM_DIRECTION;
|
|
|
|
|
|
+ /* The ST Micro variants has a special bit to enable SDIO */
|
|
|
+ if (variant->sdio && host->mmc->card)
|
|
|
+ if (mmc_card_sdio(host->mmc->card))
|
|
|
+ datactrl |= MCI_ST_DPSM_SDIOEN;
|
|
|
+
|
|
|
/*
|
|
|
* Attempt to use DMA operation mode, if this
|
|
|
* should fail, fall back to PIO mode
|
|
@@ -643,11 +648,6 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data)
|
|
|
irqmask = MCI_TXFIFOHALFEMPTYMASK;
|
|
|
}
|
|
|
|
|
|
- /* The ST Micro variants has a special bit to enable SDIO */
|
|
|
- if (variant->sdio && host->mmc->card)
|
|
|
- if (mmc_card_sdio(host->mmc->card))
|
|
|
- datactrl |= MCI_ST_DPSM_SDIOEN;
|
|
|
-
|
|
|
writel(datactrl, base + MMCIDATACTRL);
|
|
|
writel(readl(base + MMCIMASK0) & ~MCI_DATAENDMASK, base + MMCIMASK0);
|
|
|
mmci_set_mask1(host, irqmask);
|