[PATCH v3 0/1] CMD commands improvements

- add ability for 'ums' command to interrupt run of usb mass storage with any key. This is especially useful on devices with limited input capabilities like tablets and smatphones which have only gpio keys in direct access. Current implementation uses Kconfig entry.
Changelog from v2 - fix stuck of ums due to getchar loop. Now getchar is called after tstc check.
Changelog from v1 - 'continue' command commit was dropped as there already exists 'pause' command with same function. - UMS_ABORT_KEYED renamed to CMD_UMS_ABORT_KEYED
Svyatoslav Ryhel (1): cmd: ums: abort mounting by pressing any key
cmd/Kconfig | 6 ++++++ cmd/usb_mass_storage.c | 10 ++++++++++ 2 files changed, 16 insertions(+)

This patch introduses config which allows interrupt run of usb mass storage with any key. This is especially useful on devices with limited input capabilities like tablets and smatphones which have only gpio keys in direct access.
Signed-off-by: Svyatoslav Ryhel clamor95@gmail.com --- cmd/Kconfig | 6 ++++++ cmd/usb_mass_storage.c | 10 ++++++++++ 2 files changed, 16 insertions(+)
diff --git a/cmd/Kconfig b/cmd/Kconfig index 2caa4af71c..920ea854b3 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1542,6 +1542,12 @@ config CMD_USB_MASS_STORAGE export a block device: U-Boot, the USB device, acts as a simple external hard drive plugged on the host USB port.
+config CMD_UMS_ABORT_KEYED + bool "UMS abort with any key" + depends on CMD_USB_MASS_STORAGE + help + Allow interruption of usb mass storage run with any key pressed. + config CMD_PVBLOCK bool "Xen para-virtualized block device" depends on XEN diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c index b7daaa6e8e..c3cc1975f9 100644 --- a/cmd/usb_mass_storage.c +++ b/cmd/usb_mass_storage.c @@ -231,6 +231,16 @@ static int do_usb_mass_storage(struct cmd_tbl *cmdtp, int flag, goto cleanup_register; }
+ if (IS_ENABLED(CONFIG_CMD_UMS_ABORT_KEYED)) { + /* Abort by pressing any key */ + if (tstc()) { + getchar(); + printf("\rOperation aborted.\n"); + rc = CMD_RET_SUCCESS; + goto cleanup_register; + } + } + schedule(); }
participants (1)
-
Svyatoslav Ryhel