Message ID | 20220131220831.386771-1-marcel@ziswiler.com |
---|---|
State | Accepted |
Commit | 14448e9c97f06717cac95888329ab7cf31929050 |
Delegated to: | Jaehoon Chung |
Headers | show |
Series | [v1] mmc: fsl_esdhc_imx: fix watermark level in dma | expand |
Hi Marcel, On Mon, Jan 31, 2022 at 7:08 PM Marcel Ziswiler <marcel@ziswiler.com> wrote: > > From: Marcel Ziswiler <marcel.ziswiler@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.ziswiler@toradex.com> This is probably the failure I saw on imx7 when I tried testing 'ums'. Reviewed-by: Fabio Estevam <festevam@gmail.com>
On Mon, Jan 31, 2022 at 10:44 PM Fabio Estevam <festevam@gmail.com> wrote: > > Hi Marcel, > > On Mon, Jan 31, 2022 at 7:08 PM Marcel Ziswiler <marcel@ziswiler.com> wrote: > > > > From: Marcel Ziswiler <marcel.ziswiler@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.ziswiler@toradex.com> > > This is probably the failure I saw on imx7 when I tried testing 'ums'. > > Reviewed-by: Fabio Estevam <festevam@gmail.com> This indeed fixes the regression I was seeing with imx7s-warp: Tested-by: Fabio Estevam <festevam@gmail.com>
Hi Jaehoon, On Wed, Feb 2, 2022 at 2:08 PM Fabio Estevam <festevam@gmail.com> wrote: > > On Mon, Jan 31, 2022 at 10:44 PM Fabio Estevam <festevam@gmail.com> wrote: > > > > Hi Marcel, > > > > On Mon, Jan 31, 2022 at 7:08 PM Marcel Ziswiler <marcel@ziswiler.com> wrote: > > > > > > From: Marcel Ziswiler <marcel.ziswiler@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.ziswiler@toradex.com> > > > > This is probably the failure I saw on imx7 when I tried testing 'ums'. > > > > Reviewed-by: Fabio Estevam <festevam@gmail.com> > > This indeed fixes the regression I was seeing with imx7s-warp: > > Tested-by: Fabio Estevam <festevam@gmail.com> Could you please apply this fix? Thanks
Hi Fabio, On 2/8/22 10:32, Fabio Estevam wrote: > Hi Jaehoon, > > On Wed, Feb 2, 2022 at 2:08 PM Fabio Estevam <festevam@gmail.com> wrote: >> >> On Mon, Jan 31, 2022 at 10:44 PM Fabio Estevam <festevam@gmail.com> wrote: >>> >>> Hi Marcel, >>> >>> On Mon, Jan 31, 2022 at 7:08 PM Marcel Ziswiler <marcel@ziswiler.com> wrote: >>>> >>>> From: Marcel Ziswiler <marcel.ziswiler@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.ziswiler@toradex.com> >>> >>> This is probably the failure I saw on imx7 when I tried testing 'ums'. >>> >>> Reviewed-by: Fabio Estevam <festevam@gmail.com> >> >> This indeed fixes the regression I was seeing with imx7s-warp: >> >> Tested-by: Fabio Estevam <festevam@gmail.com> > > Could you please apply this fix? Sorry for late. I had been vacation until yesterday. I'm looking for pending patches. I will pick this soon. Best Regards, Jaehoon Chung > > Thanks >
On 2/1/22 07:08, Marcel Ziswiler wrote: > From: Marcel Ziswiler <marcel.ziswiler@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.ziswiler@toradex.com> Applied on u-boot-mmc/master. Thanks! Best Regards, Jaehoon Chung > > --- > > 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 */
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 */