[PATCH v2] mmc: Unconditionally call mmc_deinit()

Dragan Simic dsimic at manjaro.org
Sun Mar 17 04:17:44 CET 2024


On 2024-03-17 04:01, Marek Vasut wrote:
> Place the SDR104/HS200/HS400 checks into the mmc_deinit() and always
> call it. This simplifies the code and removes ifdeffery. No functional
> change is expected.
> 
> Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>
> Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>

Looking good to me.

Reviewed-by: Dragan Simic <dsimic at manjaro.org>

> ---
> Cc: Jaehoon Chung <jh80.chung at samsung.com>
> Cc: Peng Fan <peng.fan at nxp.com>
> ---
> V2: - Add sd_select_mode_and_width and mmc_select_mode_and_width stubs
>       in case MMC_TINY is defined
>     - Add RB from Jaehoon
> ---
>  drivers/mmc/mmc-uclass.c | 13 +------------
>  drivers/mmc/mmc.c        | 19 +++++++++++++++----
>  2 files changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c
> index 328456831dd..cdead044177 100644
> --- a/drivers/mmc/mmc-uclass.c
> +++ b/drivers/mmc/mmc-uclass.c
> @@ -494,10 +494,7 @@ static int mmc_blk_probe(struct udevice *dev)
>  	if (ret) {
>  		debug("Probing %s failed (err=%d)\n", dev->name, ret);
> 
> -		if (CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) ||
> -		    CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) ||
> -		    CONFIG_IS_ENABLED(MMC_HS400_SUPPORT))
> -			mmc_deinit(mmc);
> +		mmc_deinit(mmc);
> 
>  		return ret;
>  	}
> @@ -505,9 +502,6 @@ static int mmc_blk_probe(struct udevice *dev)
>  	return 0;
>  }
> 
> -#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \
> -    CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \
> -    CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
>  static int mmc_blk_remove(struct udevice *dev)
>  {
>  	struct udevice *mmc_dev = dev_get_parent(dev);
> @@ -516,7 +510,6 @@ static int mmc_blk_remove(struct udevice *dev)
> 
>  	return mmc_deinit(mmc);
>  }
> -#endif
> 
>  static const struct blk_ops mmc_blk_ops = {
>  	.read	= mmc_bread,
> @@ -532,12 +525,8 @@ U_BOOT_DRIVER(mmc_blk) = {
>  	.id		= UCLASS_BLK,
>  	.ops		= &mmc_blk_ops,
>  	.probe		= mmc_blk_probe,
> -#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \
> -    CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \
> -    CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
>  	.remove		= mmc_blk_remove,
>  	.flags		= DM_FLAG_OS_PREPARE,
> -#endif
>  };
>  #endif /* CONFIG_BLK */
> 
> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
> index d96db7a0f83..4722bb2711a 100644
> --- a/drivers/mmc/mmc.c
> +++ b/drivers/mmc/mmc.c
> @@ -2250,6 +2250,16 @@ error:
> 
>  	return -ENOTSUPP;
>  }
> +#else
> +static int sd_select_mode_and_width(struct mmc *mmc, uint card_caps)
> +{
> +	return 0;
> +};
> +
> +static int mmc_select_mode_and_width(struct mmc *mmc, uint card_caps)
> +{
> +	return 0;
> +};
>  #endif
> 
>  #if CONFIG_IS_ENABLED(MMC_TINY)
> @@ -3010,13 +3020,15 @@ int mmc_init(struct mmc *mmc)
>  	return err;
>  }
> 
> -#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \
> -    CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \
> -    CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
>  int mmc_deinit(struct mmc *mmc)
>  {
>  	u32 caps_filtered;
> 
> +	if (!CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) &&
> +	    !CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) &&
> +	    !CONFIG_IS_ENABLED(MMC_HS400_SUPPORT))
> +		return 0;
> +
>  	if (!mmc->has_init)
>  		return 0;
> 
> @@ -3034,7 +3046,6 @@ int mmc_deinit(struct mmc *mmc)
>  		return mmc_select_mode_and_width(mmc, caps_filtered);
>  	}
>  }
> -#endif
> 
>  int mmc_set_dsr(struct mmc *mmc, u16 val)
>  {


More information about the U-Boot mailing list