From: Marcel Ziswiler <marcel.ziswi...@toradex.com>

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.ziswi...@toradex.com>

---

 drivers/mmc/fsl_esdhc_imx.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
index 9299635f50..efa5ed0af7 100644
--- a/drivers/mmc/fsl_esdhc_imx.c
+++ b/drivers/mmc/fsl_esdhc_imx.c
@@ -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 */
-- 
2.34.1

Reply via email to