From: Jaehoon Chung Date: Fri, 27 Mar 2020 04:08:00 +0000 (+0900) Subject: mmc: sdhci: use phys2bus macro when dma address is accessed X-Git-Tag: v2020.07-rc3~20^2~7 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=fac8bfd4f52612fceb2d9784c93ed8f147f209c3;p=oweals%2Fu-boot.git mmc: sdhci: use phys2bus macro when dma address is accessed Use phys2bus macro when dma address is accessed. Some targets need to use pyhs2bus macro. (e.g, RPI4) After applied it, SDMA mode can be used. Signed-off-by: Jaehoon Chung Reviewed-by: Peng Fan Reviewed-by: Minkyu Kang Signed-off-by: Matthias Brugger --- diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index 372dc0a820..480fad37ed 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c @@ -16,6 +16,7 @@ #include #include #include +#include static void sdhci_reset(struct sdhci_host *host, u8 mask) { @@ -150,7 +151,8 @@ static void sdhci_prepare_dma(struct sdhci_host *host, struct mmc_data *data, mmc_get_dma_dir(data)); if (host->flags & USE_SDMA) { - sdhci_writel(host, host->start_addr, SDHCI_DMA_ADDRESS); + sdhci_writel(host, phys_to_bus((ulong)host->start_addr), + SDHCI_DMA_ADDRESS); } else if (host->flags & (USE_ADMA | USE_ADMA64)) { sdhci_prepare_adma_table(host, data); @@ -204,7 +206,7 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data) start_addr &= ~(SDHCI_DEFAULT_BOUNDARY_SIZE - 1); start_addr += SDHCI_DEFAULT_BOUNDARY_SIZE; - sdhci_writel(host, start_addr, + sdhci_writel(host, phys_to_bus((ulong)start_addr), SDHCI_DMA_ADDRESS); } }