diff mbox series

[v1] mmc: fsl_esdhc_imx: fix watermark level in dma

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

Commit Message

Marcel Ziswiler Jan. 31, 2022, 10:08 p.m. UTC
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>

---

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

Comments

Fabio Estevam Feb. 1, 2022, 1:44 a.m. UTC | #1
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>
Fabio Estevam Feb. 2, 2022, 5:08 p.m. UTC | #2
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>
Fabio Estevam Feb. 8, 2022, 1:32 a.m. UTC | #3
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
Jaehoon Chung Feb. 8, 2022, 2:15 a.m. UTC | #4
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
>
Jaehoon Chung Feb. 8, 2022, 11:37 p.m. UTC | #5
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 mbox series

Patch

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 */