[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