[PATCH v2] 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 --- Cc: Jaehoon Chung jh80.chung@samsung.com Cc: Peng Fan peng.fan@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) {

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@samsung.com Signed-off-by: Marek Vasut marek.vasut+renesas@mailbox.org
Looking good to me.
Reviewed-by: Dragan Simic dsimic@manjaro.org
Cc: Jaehoon Chung jh80.chung@samsung.com Cc: Peng Fan peng.fan@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) {
participants (2)
-
Dragan Simic
-
Marek Vasut