diff mbox series

drivers: mmc: check the return value of mmc_send_if_cond() call

Message ID 20221021071602.349483-1-mranostay@ti.com
State Changes Requested
Delegated to: Jaehoon Chung
Headers show
Series drivers: mmc: check the return value of mmc_send_if_cond() call | expand

Commit Message

Matt Ranostay Oct. 21, 2022, 7:16 a.m. UTC
Return value from mmc_send_if_cond() isn't checked if it is a error state
and the result immediately is overwritten with the sd_send_op_cond() call.

Add check for -EOPNOTSUPP to fail early, and trigger a retry for any other
error code.

Fixes: afd5932b2c27 ("Revert "mmc: retry the cmd8 to meet 74 clocks requirement in the spec")
Signed-off-by: Matt Ranostay <mranostay@ti.com>
---
 drivers/mmc/mmc.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Jaehoon Chung Oct. 21, 2022, 9:07 a.m. UTC | #1
> -----Original Message-----
> From: Matt Ranostay [mailto:mranostay@ti.com]
> Sent: Friday, October 21, 2022 4:16 PM
> To: peng.fan@nxp.com; jh80.chung@samsung.com
> Cc: u-boot@lists.denx.de; Matt Ranostay <mranostay@ti.com>
> Subject: [PATCH] drivers: mmc: check the return value of mmc_send_if_cond() call
> 
> Return value from mmc_send_if_cond() isn't checked if it is a error state
> and the result immediately is overwritten with the sd_send_op_cond() call.
> 
> Add check for -EOPNOTSUPP to fail early, and trigger a retry for any other
> error code.
> 
> Fixes: afd5932b2c27 ("Revert "mmc: retry the cmd8 to meet 74 clocks requirement in the spec")
> Signed-off-by: Matt Ranostay <mranostay@ti.com>

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>

Best Regards,
Jaehoon Chung

> ---
>  drivers/mmc/mmc.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
> index 0b7c0be8cbc..e26a457a74c 100644
> --- a/drivers/mmc/mmc.c
> +++ b/drivers/mmc/mmc.c
> @@ -2862,6 +2862,13 @@ retry:
> 
>  	/* Test for SD version 2 */
>  	err = mmc_send_if_cond(mmc);
> +	if (err == -EOPNOTSUPP)
> +		return err;
> +
> +	if (err) {
> +		mmc_power_cycle(mmc);
> +		goto retry;
> +	}
> 
>  	/* Now try to get the SD card's operating condition */
>  	err = sd_send_op_cond(mmc, uhs_en);
> --
> 2.38.GIT
Jaehoon Chung Oct. 24, 2022, 10:54 a.m. UTC | #2
Hi Matt,

After applied this patch, CI Test is failed.
Test for Nokia RX-51 (aka N900)

I will not apply this patch at this time until fixing CI fail issue.

Best Regards,
Jaehoon Chung

> -----Original Message-----
> From: U-Boot [mailto:u-boot-bounces@lists.denx.de] On Behalf Of 정재훈
> Sent: Friday, October 21, 2022 6:08 PM
> To: 'Matt Ranostay' <mranostay@ti.com>; peng.fan@nxp.com
> Cc: u-boot@lists.denx.de
> Subject: RE: [PATCH] drivers: mmc: check the return value of mmc_send_if_cond() call
> 
> 
> > -----Original Message-----
> > From: Matt Ranostay [mailto:mranostay@ti.com]
> > Sent: Friday, October 21, 2022 4:16 PM
> > To: peng.fan@nxp.com; jh80.chung@samsung.com
> > Cc: u-boot@lists.denx.de; Matt Ranostay <mranostay@ti.com>
> > Subject: [PATCH] drivers: mmc: check the return value of mmc_send_if_cond() call
> >
> > Return value from mmc_send_if_cond() isn't checked if it is a error state
> > and the result immediately is overwritten with the sd_send_op_cond() call.
> >
> > Add check for -EOPNOTSUPP to fail early, and trigger a retry for any other
> > error code.
> >
> > Fixes: afd5932b2c27 ("Revert "mmc: retry the cmd8 to meet 74 clocks requirement in the spec")
> > Signed-off-by: Matt Ranostay <mranostay@ti.com>
> 
> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
> 
> Best Regards,
> Jaehoon Chung
> 
> > ---
> >  drivers/mmc/mmc.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
> > index 0b7c0be8cbc..e26a457a74c 100644
> > --- a/drivers/mmc/mmc.c
> > +++ b/drivers/mmc/mmc.c
> > @@ -2862,6 +2862,13 @@ retry:
> >
> >  	/* Test for SD version 2 */
> >  	err = mmc_send_if_cond(mmc);
> > +	if (err == -EOPNOTSUPP)
> > +		return err;
> > +
> > +	if (err) {
> > +		mmc_power_cycle(mmc);
> > +		goto retry;
> > +	}
> >
> >  	/* Now try to get the SD card's operating condition */
> >  	err = sd_send_op_cond(mmc, uhs_en);
> > --
> > 2.38.GIT
>
diff mbox series

Patch

diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 0b7c0be8cbc..e26a457a74c 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -2862,6 +2862,13 @@  retry:
 
 	/* Test for SD version 2 */
 	err = mmc_send_if_cond(mmc);
+	if (err == -EOPNOTSUPP)
+		return err;
+
+	if (err) {
+		mmc_power_cycle(mmc);
+		goto retry;
+	}
 
 	/* Now try to get the SD card's operating condition */
 	err = sd_send_op_cond(mmc, uhs_en);