mmc: Unconditionally call mmc_deinit()

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@samsung.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
This commit is contained in:
Marek Vasut
2024-03-17 04:01:22 +01:00
committed by Jaehoon Chung
parent b78630630a
commit 27ba82cb6c
2 changed files with 16 additions and 16 deletions

View File

@@ -500,10 +500,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;
}
@@ -511,9 +508,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);
@@ -522,7 +516,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,
@@ -538,12 +531,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 */

View File

@@ -2257,6 +2257,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)
@@ -3019,13 +3029,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;
@@ -3043,7 +3055,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)
{