Thread (4 messages) 4 messages, 2 authors, 2021-08-11

Re: [PATCH 1/2] mmc: mxcmmc: really configure the DMA on demand

From: Ulf Hansson <hidden>
Date: 2021-08-11 11:36:52
Also in: lkml

On Thu, 29 Jul 2021 at 09:29, Juergen Borleis [off-list ref] wrote:
Calling mxcmci_use_dma(host) is intended for the next transfer only, not
for generic detection if DMA is possible. Without this change, the DMA gets
never configured and thus, never used.
Wow, that's an old bug you found there.
Signed-off-by: Juergen Borleis <redacted>
It looks like we should add a fixes tag and add a stable tag:

Fixes: f53fbde48ef0 ("mmc: mxcmmc: use dmaengine API")
quoted hunk ↗ jump to hunk
---
 drivers/mmc/host/mxcmmc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/mxcmmc.c b/drivers/mmc/host/mxcmmc.c
index 2fe6fcd..611f827 100644
--- a/drivers/mmc/host/mxcmmc.c
+++ b/drivers/mmc/host/mxcmmc.c
@@ -834,7 +834,8 @@ static void mxcmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
        else
                burstlen = 4;

-       if (mxcmci_use_dma(host) && burstlen != host->burstlen) {
+       if (host->dma != NULL && burstlen != host->burstlen) {
+               /* reconfigure DMA on changes only */
                host->burstlen = burstlen;
                ret = mxcmci_setup_dma(mmc);
                if (ret) {
A few lines below here, you should not clear host->do_dma, as it can't
be set at this point (thus clearing it just adds confusion).

Also I wonder if patch2 is really needed to fix the bug, or should be
considered as nice cleanup instead?

Kind regards
Uffe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help