Linux-Renesas-SoC Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping
@ 2020-05-21  7:01 Yoshihiro Shimoda
  2020-05-21  7:01 ` [PATCH 1/3] mmc: tmio: core: Add end operation into tmio_mmc_dma_ops Yoshihiro Shimoda
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Yoshihiro Shimoda @ 2020-05-21  7:01 UTC (permalink / raw)
  To: ulf.hansson, wsa+renesas; +Cc: linux-mmc, linux-renesas-soc, Yoshihiro Shimoda

This patch series is based on mmc.git / next branch.

I guess we should add such a code into renesas_sdhi_sys_dmac and
uniphier-sd drivers too. But, for now, I fixed
renesas_sdhi_internal_dmac only.

Yoshihiro Shimoda (3):
  mmc: tmio: core: Add end operation into tmio_mmc_dma_ops
  mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete
  mmc: renesas_sdhi_internal_dmac: Fix dma unmapping in error cases

 drivers/mmc/host/renesas_sdhi_internal_dmac.c | 28 +++++++++++++++++++++++----
 drivers/mmc/host/tmio_mmc.h                   |  3 +++
 drivers/mmc/host/tmio_mmc_core.c              |  8 ++++++++
 3 files changed, 35 insertions(+), 4 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/3] mmc: tmio: core: Add end operation into tmio_mmc_dma_ops
  2020-05-21  7:01 [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping Yoshihiro Shimoda
@ 2020-05-21  7:01 ` Yoshihiro Shimoda
  2020-05-21  7:01 ` [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete Yoshihiro Shimoda
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Yoshihiro Shimoda @ 2020-05-21  7:01 UTC (permalink / raw)
  To: ulf.hansson, wsa+renesas; +Cc: linux-mmc, linux-renesas-soc, Yoshihiro Shimoda

Related drivers like renesas_sdhi_internal_dmac are possible
to lack dma unmaping in error cases (for example response timeout).

Since tmio_mmc_finish_request() will be always called in any case,
to fix the issue, add end operation into struct tmio_mmc_dma_ops and
call the operation in tmio_mmc_finish_request() to call dma_ummap API
by the related drivers correctly.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
---
 drivers/mmc/host/tmio_mmc.h      | 3 +++
 drivers/mmc/host/tmio_mmc_core.c | 8 ++++++++
 2 files changed, 11 insertions(+)

diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
index b4cf101..0a4f365 100644
--- a/drivers/mmc/host/tmio_mmc.h
+++ b/drivers/mmc/host/tmio_mmc.h
@@ -118,6 +118,9 @@ struct tmio_mmc_dma_ops {
 	void (*release)(struct tmio_mmc_host *host);
 	void (*abort)(struct tmio_mmc_host *host);
 	void (*dataend)(struct tmio_mmc_host *host);
+
+	/* optional */
+	void (*end)(struct tmio_mmc_host *host);	/* held host->lock */
 };
 
 struct tmio_mmc_host {
diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index d7fde57..946fb01 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -57,6 +57,12 @@ static inline void tmio_mmc_start_dma(struct tmio_mmc_host *host,
 		host->dma_ops->start(host, data);
 }
 
+static inline void tmio_mmc_end_dma(struct tmio_mmc_host *host)
+{
+	if (host->dma_ops && host->dma_ops->end)
+		host->dma_ops->end(host);
+}
+
 static inline void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable)
 {
 	if (host->dma_ops)
@@ -797,6 +803,8 @@ static void tmio_mmc_finish_request(struct tmio_mmc_host *host)
 
 	spin_lock_irqsave(&host->lock, flags);
 
+	tmio_mmc_end_dma(host);
+
 	mrq = host->mrq;
 	if (IS_ERR_OR_NULL(mrq)) {
 		spin_unlock_irqrestore(&host->lock, flags);
-- 
2.7.4


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete
  2020-05-21  7:01 [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping Yoshihiro Shimoda
  2020-05-21  7:01 ` [PATCH 1/3] mmc: tmio: core: Add end operation into tmio_mmc_dma_ops Yoshihiro Shimoda
@ 2020-05-21  7:01 ` Yoshihiro Shimoda
  2020-05-21  7:01 ` [PATCH 3/3] mmc: renesas_sdhi_internal_dmac: Fix dma unmapping in error cases Yoshihiro Shimoda
  2020-05-21  7:44 ` [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping Yoshihiro Shimoda
  3 siblings, 0 replies; 7+ messages in thread
From: Yoshihiro Shimoda @ 2020-05-21  7:01 UTC (permalink / raw)
  To: ulf.hansson, wsa+renesas; +Cc: linux-mmc, linux-renesas-soc, Yoshihiro Shimoda

To add end() operation in the future, clean the code of
renesas_sdhi_internal_dmac_complete_tasklet_fn(). No behavior change.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
---
 drivers/mmc/host/renesas_sdhi_internal_dmac.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/drivers/mmc/host/renesas_sdhi_internal_dmac.c b/drivers/mmc/host/renesas_sdhi_internal_dmac.c
index 47ac53e..201b8ed 100644
--- a/drivers/mmc/host/renesas_sdhi_internal_dmac.c
+++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c
@@ -229,15 +229,12 @@ static void renesas_sdhi_internal_dmac_issue_tasklet_fn(unsigned long arg)
 					    DTRAN_CTRL_DM_START);
 }
 
-static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
+static bool renesas_sdhi_internal_dmac_complete(struct tmio_mmc_host *host)
 {
-	struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg;
 	enum dma_data_direction dir;
 
-	spin_lock_irq(&host->lock);
-
 	if (!host->data)
-		goto out;
+		return false;
 
 	if (host->data->flags & MMC_DATA_READ)
 		dir = DMA_FROM_DEVICE;
@@ -250,6 +247,17 @@ static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
 	if (dir == DMA_FROM_DEVICE)
 		clear_bit(SDHI_INTERNAL_DMAC_RX_IN_USE, &global_flags);
 
+	return true;
+}
+
+static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
+{
+	struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg;
+
+	spin_lock_irq(&host->lock);
+	if (!renesas_sdhi_internal_dmac_complete(host))
+		goto out;
+
 	tmio_mmc_do_data_irq(host);
 out:
 	spin_unlock_irq(&host->lock);
-- 
2.7.4


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 3/3] mmc: renesas_sdhi_internal_dmac: Fix dma unmapping in error cases
  2020-05-21  7:01 [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping Yoshihiro Shimoda
  2020-05-21  7:01 ` [PATCH 1/3] mmc: tmio: core: Add end operation into tmio_mmc_dma_ops Yoshihiro Shimoda
  2020-05-21  7:01 ` [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete Yoshihiro Shimoda
@ 2020-05-21  7:01 ` Yoshihiro Shimoda
  2020-05-21  7:44 ` [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping Yoshihiro Shimoda
  3 siblings, 0 replies; 7+ messages in thread
From: Yoshihiro Shimoda @ 2020-05-21  7:01 UTC (permalink / raw)
  To: ulf.hansson, wsa+renesas; +Cc: linux-mmc, linux-renesas-soc, Yoshihiro Shimoda

If this controller doesn't issue interrupt for response of command,
this driver lacks to call dma_unmap_sg(). So, fix the issue by
using end() of struct tmio_mmc_dma_ops.

Reported-by: Takeshi Saito <takeshi.saito.xv@renesas.com>
Fixes: 2a68ea7896e3 ("mmc: renesas-sdhi: add support for R-Car Gen3 SDHI DMAC")
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
---
 drivers/mmc/host/renesas_sdhi_internal_dmac.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/mmc/host/renesas_sdhi_internal_dmac.c b/drivers/mmc/host/renesas_sdhi_internal_dmac.c
index 201b8ed..32ab991 100644
--- a/drivers/mmc/host/renesas_sdhi_internal_dmac.c
+++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c
@@ -233,6 +233,9 @@ static bool renesas_sdhi_internal_dmac_complete(struct tmio_mmc_host *host)
 {
 	enum dma_data_direction dir;
 
+	if (!host->dma_on)
+		return false;
+
 	if (!host->data)
 		return false;
 
@@ -247,6 +250,8 @@ static bool renesas_sdhi_internal_dmac_complete(struct tmio_mmc_host *host)
 	if (dir == DMA_FROM_DEVICE)
 		clear_bit(SDHI_INTERNAL_DMAC_RX_IN_USE, &global_flags);
 
+	host->dma_on = false;
+
 	return true;
 }
 
@@ -263,6 +268,12 @@ static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
 	spin_unlock_irq(&host->lock);
 }
 
+static void renesas_sdhi_internal_dmac_end_dma(struct tmio_mmc_host *host)
+{
+	if (host->data)
+		renesas_sdhi_internal_dmac_complete(host);
+}
+
 static void
 renesas_sdhi_internal_dmac_request_dma(struct tmio_mmc_host *host,
 				       struct tmio_mmc_data *pdata)
@@ -300,6 +311,7 @@ static const struct tmio_mmc_dma_ops renesas_sdhi_internal_dmac_dma_ops = {
 	.release = renesas_sdhi_internal_dmac_release_dma,
 	.abort = renesas_sdhi_internal_dmac_abort_dma,
 	.dataend = renesas_sdhi_internal_dmac_dataend_dma,
+	.end = renesas_sdhi_internal_dmac_end_dma,
 };
 
 /*
-- 
2.7.4


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping
  2020-05-21  7:01 [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping Yoshihiro Shimoda
                   ` (2 preceding siblings ...)
  2020-05-21  7:01 ` [PATCH 3/3] mmc: renesas_sdhi_internal_dmac: Fix dma unmapping in error cases Yoshihiro Shimoda
@ 2020-05-21  7:44 ` Yoshihiro Shimoda
  2020-06-02 12:51   ` wsa+renesas
  3 siblings, 1 reply; 7+ messages in thread
From: Yoshihiro Shimoda @ 2020-05-21  7:44 UTC (permalink / raw)
  To: ulf.hansson, wsa+renesas; +Cc: linux-mmc, linux-renesas-soc

Hi again,

> From: Yoshihiro Shimoda, Sent: Thursday, May 21, 2020 4:01 PM
> To: ulf.hansson@linaro.org; wsa+renesas@sang-engineering.com
> Cc: linux-mmc@vger.kernel.org; linux-renesas-soc@vger.kernel.org; Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> 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 ||


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping
  2020-05-21  7:44 ` [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping Yoshihiro Shimoda
@ 2020-06-02 12:51   ` wsa+renesas
  2020-06-04  2:52     ` Yoshihiro Shimoda
  0 siblings, 1 reply; 7+ messages in thread
From: wsa+renesas @ 2020-06-02 12:51 UTC (permalink / raw)
  To: Yoshihiro Shimoda; +Cc: ulf.hansson, linux-mmc, linux-renesas-soc


[-- Attachment #1: Type: text/plain, Size: 1543 bytes --]

Hi Shimoda-san,

thanks for the patches and for providing a test case. I was not able to
reproduce the issue, though. I'll explain...

> 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.

So, I have this debug patch applied on top of mmc/next. I have the above
CONFIG_ symbols enabled. I have _not_ applied your three patches which
fix the issue. I mounted the eMMC and read a large file. I see the
injected timeouts happening:

[   94.079560] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   94.088668] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   94.097727] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   94.106768] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   94.115848] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   99.300589] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for hardware interrupt (CMD13)

But I do not see any output from the DMA debug system about a missing
unmapping. I expected that, though, because your fixes are not applied.
The testfile could even be correctly checksummed after reading, just
awfully slow, of course.

Am I missing something?

All the best,

   Wolfram


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping
  2020-06-02 12:51   ` wsa+renesas
@ 2020-06-04  2:52     ` Yoshihiro Shimoda
  0 siblings, 0 replies; 7+ messages in thread
From: Yoshihiro Shimoda @ 2020-06-04  2:52 UTC (permalink / raw)
  To: wsa+renesas; +Cc: ulf.hansson, linux-mmc, linux-renesas-soc

Hi Wolfram-san,

> From: wsa+renesas@sang-engineering.com, Sent: Tuesday, June 2, 2020 9:52 PM
> 
> Hi Shimoda-san,
> 
> thanks for the patches and for providing a test case. I was not able to
> reproduce the issue, though. I'll explain...

Thank you for trying to reproduce the issue!

> > 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.
> 
> So, I have this debug patch applied on top of mmc/next. I have the above
> CONFIG_ symbols enabled. I have _not_ applied your three patches which
> fix the issue. I mounted the eMMC and read a large file. I see the
> injected timeouts happening:
> 
> [   94.079560] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
> [   94.088668] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
> [   94.097727] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
> [   94.106768] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
> [   94.115848] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
> [   99.300589] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for hardware interrupt (CMD13)
> 
> But I do not see any output from the DMA debug system about a missing
> unmapping. I expected that, though, because your fixes are not applied.
> The testfile could even be correctly checksummed after reading, just
> awfully slow, of course.

I'm sorry, I should have shared my log. My test case is:
- Use dd command as background.
- Read /sys/kernel/debug/dma-api/dump while the dd command is running.
--> "ee140000.sd" lines are increased gradually.

---- Log ---
~ # dd if=/dev/mmcblk1 of=/dev/null bs=512k &
~ # grep sd /sys/kernel/debug/dma-api/dump
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8274 P=736a8a000 N=736a8a D=740a4000 L=3000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8603 P=736a51000 N=736a51 D=74337000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
~ # [   56.797275] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for hardware interrupt (CMD13)
[   56.857055] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   56.866231] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   56.875330] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   56.884313] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   56.893334] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   61.917228] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for hardware interrupt (CMD13)
[   61.967599] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   61.976722] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   61.985726] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   61.994847] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   62.003772] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle

~ # 
~ # [   67.037259] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for hardware interrupt (CMD13)
[   67.098616] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   67.107610] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   67.116595] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   67.125591] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   67.134819] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle

~ # 
~ # grep sd /sys/kernel/debug/dma-api/dump
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8274 P=736a8a000 N=736a8a D=740a4000 L=3000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8603 P=736a51000 N=736a51 D=74337000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8807 P=737c2c000 N=737c2c D=744ce000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8993 P=736b80000 N=736b80 D=74642000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 9251 P=73665f000 N=73665f D=74847000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
~ # [   72.157278] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for hardware interrupt (CMD13)
[   72.217556] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   72.226595] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   72.235577] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   72.244558] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   72.253580] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   77.277235] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for hardware interrupt (CMD13)
[   77.339935] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   77.348953] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   77.358283] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   77.367271] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle
[   77.376215] renesas_sdhi_internal_dmac ee140000.sd: timeout waiting for SD bus idle

~ # 
~ # grep sd /sys/kernel/debug/dma-api/dump
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8274 P=736a8a000 N=736a8a D=740a4000 L=3000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8603 P=736a51000 N=736a51 D=74337000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8807 P=737c2c000 N=737c2c D=744ce000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 8993 P=736b80000 N=736b80 D=74642000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 9251 P=73665f000 N=73665f D=74847000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 9470 P=739af2000 N=739af2 D=749fc000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
ee140000.sd renesas_sdhi_internal_dmac scather-gather idx 9794 P=736867000 N=736867 D=74c85000 L=1000 DMA_FROM_DEVICE dma map error check not applicable
----

Best regards,
Yoshihiro Shimoda


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, back to index

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-21  7:01 [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping Yoshihiro Shimoda
2020-05-21  7:01 ` [PATCH 1/3] mmc: tmio: core: Add end operation into tmio_mmc_dma_ops Yoshihiro Shimoda
2020-05-21  7:01 ` [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete Yoshihiro Shimoda
2020-05-21  7:01 ` [PATCH 3/3] mmc: renesas_sdhi_internal_dmac: Fix dma unmapping in error cases Yoshihiro Shimoda
2020-05-21  7:44 ` [PATCH 0/3] mmc: tmio and renesas_sdhi_internal_dmac: fix dma unmapping Yoshihiro Shimoda
2020-06-02 12:51   ` wsa+renesas
2020-06-04  2:52     ` Yoshihiro Shimoda

Linux-Renesas-SoC Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-renesas-soc/0 linux-renesas-soc/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-renesas-soc linux-renesas-soc/ https://lore.kernel.org/linux-renesas-soc \
		linux-renesas-soc@vger.kernel.org
	public-inbox-index linux-renesas-soc

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-renesas-soc


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git