aboutsummaryrefslogtreecommitdiff
path: root/drivers/mmc/host/sdhci.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-14 12:29:14 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-14 12:29:14 -0700
commit3ec2ab5514dbd6b5c4c3437c6a3cd9e5a90e84ef (patch)
tree44225691130bac645c033db1f80cc083597f1bb3 /drivers/mmc/host/sdhci.c
parent200cfbb36ce360f7943c62b6c09885c215bfc1f5 (diff)
parent90e07d9f54c61449dd48eff82e2354d0124d4f7e (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: pxamci: fix PXA27x MMC workaround for bad CRC with 136 bit response mmc: use assigned major for block device sdhci: handle dma boundary interrupts mmc: au1xmmc command types check from data flags
Diffstat (limited to 'drivers/mmc/host/sdhci.c')
-rw-r--r--drivers/mmc/host/sdhci.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ff5bf73cdd2..a359efdd77e 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -963,6 +963,15 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
if (intmask & (SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL))
sdhci_transfer_pio(host);
+ /*
+ * We currently don't do anything fancy with DMA
+ * boundaries, but as we can't disable the feature
+ * we need to at least restart the transfer.
+ */
+ if (intmask & SDHCI_INT_DMA_END)
+ writel(readl(host->ioaddr + SDHCI_DMA_ADDRESS),
+ host->ioaddr + SDHCI_DMA_ADDRESS);
+
if (intmask & SDHCI_INT_DATA_END)
sdhci_finish_data(host);
}