diff options
author | Przemyslaw Marczak <p.marczak@samsung.com> | 2013-10-23 14:30:42 +0200 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2013-11-08 20:46:19 +0100 |
commit | 93c813b3ac4b23df891992f93252c59231dec388 (patch) | |
tree | 09845f95edb591abcf64f35ffcb57019e6cf25e1 /common | |
parent | 2cee0408e5c6f5dbdfa89fb40168ba2ead3f61a6 (diff) | |
download | u-boot-imx-93c813b3ac4b23df891992f93252c59231dec388.zip u-boot-imx-93c813b3ac4b23df891992f93252c59231dec388.tar.gz u-boot-imx-93c813b3ac4b23df891992f93252c59231dec388.tar.bz2 |
usb: ums: code refactoring to improve reusability on other boards.
This patch introduces some cleanups to ums code. Changes:
ums common:
- introduce UMS_START_SECTOR and UMS_NUM_SECTORS as defined in
usb_mass_storage.h both default values as 0 if board config
doesn't define them
common cleanup changes:
- change name of struct "ums_board_info" to "ums"
- "ums_device" fields are moved to struct ums and "dev_num" is removed
- change function name: board_ums_init to ums_init
- remove "extern" prefixes from usb_mass_storage.h
cmd_usb_mass_storage:
- change error() to printf() if need to print info message
- change return values to command_ret_t type at ums command code
- add command usage string
Changes v2:
ums common:
- always returns number of read/write sectors
- coding style clean-up
ums gadget:
- calculate amount of read/write from device returned value.
Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Marek Vasut <marek.vasut@gmail.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_usb_mass_storage.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/common/cmd_usb_mass_storage.c b/common/cmd_usb_mass_storage.c index f583caf..f6ceba7 100644 --- a/common/cmd_usb_mass_storage.c +++ b/common/cmd_usb_mass_storage.c @@ -22,28 +22,26 @@ int do_usb_mass_storage(cmd_tbl_t *cmdtp, int flag, unsigned int dev_num = (unsigned int)(simple_strtoul(mmc_devstring, NULL, 0)); - if (dev_num) { - error("Set eMMC device to 0! - e.g. ums 0"); - goto fail; - } + if (dev_num) + return CMD_RET_USAGE; unsigned int controller_index = (unsigned int)(simple_strtoul( usb_controller, NULL, 0)); if (board_usb_init(controller_index, USB_INIT_DEVICE)) { error("Couldn't init USB controller."); - goto fail; + return CMD_RET_FAILURE; } - struct ums_board_info *ums_info = board_ums_init(dev_num, 0, 0); - if (!ums_info) { - error("MMC: %d -> NOT available", dev_num); - goto fail; + struct ums *ums = ums_init(dev_num); + if (!ums) { + printf("MMC: %u no such device\n", dev_num); + return CMD_RET_FAILURE; } - int rc = fsg_init(ums_info); + int rc = fsg_init(ums); if (rc) { error("fsg_init failed"); - goto fail; + return CMD_RET_FAILURE; } g_dnl_register("ums"); @@ -62,13 +60,10 @@ int do_usb_mass_storage(cmd_tbl_t *cmdtp, int flag, } exit: g_dnl_unregister(); - return 0; - -fail: - return -1; + return CMD_RET_SUCCESS; } U_BOOT_CMD(ums, CONFIG_SYS_MAXARGS, 1, do_usb_mass_storage, "Use the UMS [User Mass Storage]", - "<USB_controller> <mmc_dev>" + "ums <USB_controller> <mmc_dev> e.g. ums 0 0" ); |