ARM: 7227/1: mmc: mmci: Prepare for SDIO before setting up DMA job
Move the SDIO preparation to be done before the DMA job is setup. This makes it possible to do DMA for SDIO transfers as well as the earlier supported pio mode. Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Signed-off-by: Stefan Nilsson XK <stefan.xk.nilsson@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
2cd976c464
commit
7258db7efe
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue