diff options
| author | Stefano Babic <sbabic@denx.de> | 2012-11-10 08:05:54 +0100 | 
|---|---|---|
| committer | Stefano Babic <sbabic@denx.de> | 2012-11-10 08:05:54 +0100 | 
| commit | 3e4d27b06d7484040355e22eec2cbce7335d6dab (patch) | |
| tree | 9672a2bb2e4ce0edc0ab776ddf0e2ca8e39a5f62 /drivers/mmc/sdhci.c | |
| parent | bad05afe083eec0467220de21683443292c5012e (diff) | |
| parent | 59852d03867108217fe88e3bfc3e1e9cedfe63c5 (diff) | |
| download | olio-uboot-2014.01-3e4d27b06d7484040355e22eec2cbce7335d6dab.tar.xz olio-uboot-2014.01-3e4d27b06d7484040355e22eec2cbce7335d6dab.zip | |
Merge git://git.denx.de/u-boot
Diffstat (limited to 'drivers/mmc/sdhci.c')
| -rw-r--r-- | drivers/mmc/sdhci.c | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index 2e3c408bc..7845f873a 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c @@ -82,8 +82,15 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data,  				unsigned int start_addr)  {  	unsigned int stat, rdy, mask, timeout, block = 0; +#ifdef CONFIG_MMC_SDMA +	unsigned char ctrl; +	ctrl = sdhci_readl(host, SDHCI_HOST_CONTROL); +	ctrl &= ~SDHCI_CTRL_DMA_MASK; +	ctrl |= SDHCI_CTRL_SDMA; +	sdhci_writel(host, ctrl, SDHCI_HOST_CONTROL); +#endif -	timeout = 10000; +	timeout = 1000000;  	rdy = SDHCI_INT_SPACE_AVAIL | SDHCI_INT_DATA_AVAIL;  	mask = SDHCI_DATA_AVAILABLE | SDHCI_SPACE_AVAILABLE;  	do { @@ -233,6 +240,9 @@ int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,  	if (!ret && data)  		ret = sdhci_transfer_data(host, data, start_addr); +	if (host->quirks & SDHCI_QUIRK_WAIT_SEND_CMD) +		udelay(1000); +  	stat = sdhci_readl(host, SDHCI_INT_STATUS);  	sdhci_writel(host, SDHCI_INT_ALL_MASK, SDHCI_INT_STATUS);  	if (!ret) { |