On Thu, 29 Jul 2021 at 09:29, Juergen Borleis <jbe@xxxxxxxxxxxxxx> 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 <jbe@xxxxxxxxxxxxxx> It looks like we should add a fixes tag and add a stable tag: Fixes: f53fbde48ef0 ("mmc: mxcmmc: use dmaengine API") > --- > 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