From: Markus Niebel <[email protected]>
Currently help and parameter scanning does not check whether the feature
is enabled or not. This leads to wrong expectations based on help output
and no clear sign why the mmc dev and mmc rescan do not enforce the
supplied mode.
Fixes: 19f7a34a4642 ("mmc: Add support for enumerating MMC card in a given mode
using mmc command")
Signed-off-by: Markus Niebel <[email protected]>
Signed-off-by: Alexander Stein <[email protected]>
---
cmd/mmc.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/cmd/mmc.c b/cmd/mmc.c
index 81b1ca4ad84..54c799891e1 100644
--- a/cmd/mmc.c
+++ b/cmd/mmc.c
@@ -519,7 +519,7 @@ static int do_mmc_rescan(struct cmd_tbl *cmdtp, int flag,
if (argc == 1) {
mmc = init_mmc_device(curr_device, true);
- } else if (argc == 2) {
+ } else if ((argc == 2) && (CONFIG_IS_ENABLED(MMC_SPEED_MODE_SET))) {
enum bus_mode speed_mode;
speed_mode = (int)dectoul(argv[1], NULL);
@@ -564,11 +564,13 @@ static int do_mmc_dev(struct cmd_tbl *cmdtp, int flag,
switch (argc) {
case 4:
- speed_mode = (int)dectoul(argv[3], &endp);
- if (*endp) {
- printf("Invalid speed mode index '%s', did you specify
a mode name?\n",
- argv[3]);
- return CMD_RET_USAGE;
+ if (CONFIG_IS_ENABLED(MMC_SPEED_MODE_SET)) {
+ speed_mode = (int)dectoul(argv[3], &endp);
+ if (*endp) {
+ printf("Invalid speed mode index '%s', did you
specify a mode name?\n",
+ argv[3]);
+ return CMD_RET_USAGE;
+ }
}
fallthrough;
@@ -1312,12 +1314,17 @@ U_BOOT_CMD(
#endif
"mmc erase blk# cnt\n"
"mmc erase partname\n"
+#if CONFIG_IS_ENABLED(MMC_SPEED_MODE_SET)
"mmc rescan [mode]\n"
- "mmc part - lists available partition on current mmc device\n"
"mmc dev [dev] [part] [mode] - show or set current mmc device
[partition] and set mode\n"
" - the required speed mode is passed as the index from the following
list\n"
" [MMC_LEGACY, MMC_HS, SD_HS, MMC_HS_52, MMC_DDR_52, UHS_SDR12,
UHS_SDR25,\n"
" UHS_SDR50, UHS_DDR50, UHS_SDR104, MMC_HS_200, MMC_HS_400,
MMC_HS_400_ES]\n"
+#else
+ "mmc rescan\n"
+ "mmc dev [dev] [part] - show or set current mmc device [partition]\n"
+#endif
+ "mmc part - lists available partition on current mmc device\n"
"mmc list - lists available devices\n"
"mmc wp [PART] - power on write protect boot partitions\n"
" arguments:\n"
--
2.43.0