Hi again, > From: Yoshihiro Shimoda, Sent: Thursday, May 21, 2020 4:01 PM > To: ulf.hansson@xxxxxxxxxx; wsa+renesas@xxxxxxxxxxxxxxxxxxxx > Cc: linux-mmc@xxxxxxxxxxxxxxx; linux-renesas-soc@xxxxxxxxxxxxxxx; Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> > Subject: [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping > > This patch series is based on mmc.git / next branch. Note that this patch series is tested by using additional debug code [1], because there is difficult to reproduce this issue. Before apply patch, When I enabled CONFIG_DMA_API_DEBUG and CONFIG_DMA_API_DEBUG_SG, I observed lacking dma unmapping on /sys/kernel/debug/dma-api/dump. And then I confirmed the patch can fix the issue. --- [1] diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index adc2bf7..1df00f6 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -192,6 +192,7 @@ struct tmio_mmc_host { void (*hs400_complete)(struct tmio_mmc_host *host); const struct tmio_mmc_dma_ops *dma_ops; + int debug; }; struct tmio_mmc_host *tmio_mmc_host_alloc(struct platform_device *pdev, diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c index 946fb01..f8fe905 100644 --- a/drivers/mmc/host/tmio_mmc_core.c +++ b/drivers/mmc/host/tmio_mmc_core.c @@ -552,7 +552,8 @@ static void tmio_mmc_cmd_irq(struct tmio_mmc_host *host, unsigned int stat) cmd->resp[0] = cmd->resp[3]; } - if (stat & TMIO_STAT_CMDTIMEOUT) + host->debug++; + if (stat & TMIO_STAT_CMDTIMEOUT || !(host->debug & 0xff)) cmd->error = -ETIMEDOUT; else if ((stat & TMIO_STAT_CRCFAIL && cmd->flags & MMC_RSP_CRC) || stat & TMIO_STAT_STOPBIT_ERR ||