summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Niebel <[email protected]>2026-06-01 12:13:18 +0200
committerPeng Fan <[email protected]>2026-06-09 23:55:56 +0800
commitaec9a167b25b7da6ce6771a96c649039dda15273 (patch)
treeecbfff48901f40ce52151738642c21b5b525ba8f
parent162772d59f8d8958c91bd5976f4a791b3ab7503f (diff)
cmd: mmc: fix help and parameter verification with MMC_SPEED_MODE_SET not set
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]> Signed-off-by: Peng Fan <[email protected]>
-rw-r--r--cmd/mmc.c21
1 files 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"