summaryrefslogtreecommitdiffstats
path: root/drivers/mci/sdhci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mci/sdhci.c')
-rw-r--r--drivers/mci/sdhci.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/mci/sdhci.c b/drivers/mci/sdhci.c
index 7b6466a3f4..3587539e44 100644
--- a/drivers/mci/sdhci.c
+++ b/drivers/mci/sdhci.c
@@ -289,17 +289,12 @@ int sdhci_transfer_data_dma(struct sdhci *sdhci, struct mci_data *data,
* some controllers are faulty, don't trust them.
*/
if (irqstat & SDHCI_INT_DMA) {
- int boundary_cfg = (sdhci->sdma_boundary >> 12) & 0x7;
- dma_addr_t boundary_size = 4096 << boundary_cfg;
- /* Force update to the next DMA block boundary. */
- dma_addr_t next = (dma & ~(boundary_size - 1)) + boundary_size;
-
/*
* DMA engine has stopped on buffer boundary. Acknowledge
* the interrupt and kick the DMA engine again.
*/
sdhci_write32(sdhci, SDHCI_INT_STATUS, SDHCI_INT_DMA);
- sdhci_set_sdma_addr(sdhci, next);
+ sdhci_set_sdma_addr(sdhci, ALIGN(dma, SDHCI_DEFAULT_BOUNDARY_SIZE));
}
if (irqstat & SDHCI_INT_XFER_COMPLETE)
@@ -661,7 +656,7 @@ int sdhci_setup_host(struct sdhci *host)
if (host->caps & SDHCI_CAN_DO_8BIT)
mci->host_caps |= MMC_CAP_8_BIT_DATA;
- host->sdma_boundary = SDHCI_DMA_BOUNDARY_512K;
+ host->sdma_boundary = SDHCI_DEFAULT_BOUNDARY_ARG;
if (sdhci_can_64bit_dma(host))
host->flags |= SDHCI_USE_64_BIT_DMA;