mmc: fsl_esdhc_imx: fix watermark level in dma
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>
Mon, 31 Jan 2022 22:08:31 +0000 (23:08 +0100)
committerJaehoon Chung <jh80.chung@samsung.com>
Tue, 8 Feb 2022 23:33:28 +0000 (08:33 +0900)
Seems that we need the waterlevel setting not only for PIO mode as
without this at least the i.MX 8M Mini won't boot anymore when being
written by such a U-Boot. Corruption has also been observed both on
the i.MX 6 as well as i.MX 8M Mini when using ums on the eMMC. Fix
this by setting the watermark level again regardless of whether in
DMA or PIO mode.

Fixes: 41c6a22fc296 ("mmc: fsl_esdhc_imx: simplify esdhc_setup_data()")
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Tested-by: Fabio Estevam <festevam@gmail.com>
drivers/mmc/fsl_esdhc_imx.c

index 9299635..efa5ed0 100644 (file)
@@ -336,9 +336,8 @@ static int esdhc_setup_data(struct fsl_esdhc_priv *priv, struct mmc *mmc,
                }
        }
 
-       if (IS_ENABLED(CONFIG_SYS_FSL_ESDHC_USE_PIO))
-               esdhc_setup_watermark_level(priv, data);
-       else
+       esdhc_setup_watermark_level(priv, data);
+       if (!IS_ENABLED(CONFIG_SYS_FSL_ESDHC_USE_PIO))
                esdhc_setup_dma(priv, data);
 
        /* Calculate the timeout period for data transactions */