mmc: tmio: abort DMA before reset
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 17 Mar 2021 09:16:20 +0000 (10:16 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 30 Mar 2021 09:42:05 +0000 (11:42 +0200)
We will soon allow resetting the whole IP core via a reset controller.
For this case, DMA must be terminated before the actual reset. For the
other cases, it is probably better, too.

Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Link: https://lore.kernel.org/r/20210317091622.31890-2-wsa+renesas@sang-engineering.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/tmio_mmc_core.c

index 5aa57640d0e677264963c36945117ad7c8b72b75..eca767dcabbaa744864b15b7c5403b1f8099cb8a 100644 (file)
@@ -172,11 +172,11 @@ static void tmio_mmc_reset(struct tmio_mmc_host *host)
        sd_ctrl_write16(host, CTL_RESET_SD, 0x0001);
        usleep_range(10000, 11000);
 
+       tmio_mmc_abort_dma(host);
+
        if (host->reset)
                host->reset(host);
 
-       tmio_mmc_abort_dma(host);
-
        if (host->pdata->flags & TMIO_MMC_SDIO_IRQ) {
                sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask);
                sd_ctrl_write16(host, CTL_TRANSACTION_CTL, 0x0001);