summaryrefslogtreecommitdiff
path: root/board/samsung
diff options
context:
space:
mode:
authorPrzemyslaw Marczak <p.marczak@samsung.com>2013-10-23 14:30:42 +0200
committerMarek Vasut <marex@denx.de>2013-11-08 20:46:19 +0100
commit93c813b3ac4b23df891992f93252c59231dec388 (patch)
tree09845f95edb591abcf64f35ffcb57019e6cf25e1 /board/samsung
parent2cee0408e5c6f5dbdfa89fb40168ba2ead3f61a6 (diff)
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 'board/samsung')
-rw-r--r--board/samsung/trats/trats.c51
1 files changed, 21 insertions, 30 deletions
diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c
index d31d511e39..7d91d88879 100644
--- a/board/samsung/trats/trats.c
+++ b/board/samsung/trats/trats.c
@@ -774,63 +774,54 @@ void init_panel_info(vidinfo_t *vid)
}
#ifdef CONFIG_USB_GADGET_MASS_STORAGE
-static int ums_read_sector(struct ums_device *ums_dev,
+static int ums_read_sector(struct ums *ums_dev,
ulong start, lbaint_t blkcnt, void *buf)
{
- if (ums_dev->mmc->block_dev.block_read(ums_dev->dev_num,
- start + ums_dev->offset, blkcnt, buf) != blkcnt)
- return -1;
+ block_dev_desc_t *block_dev = &ums_dev->mmc->block_dev;
+ lbaint_t blkstart = start + ums_dev->offset;
+ int dev_num = block_dev->dev;
- return 0;
+ return block_dev->block_read(dev_num, blkstart, blkcnt, buf);
}
-static int ums_write_sector(struct ums_device *ums_dev,
+static int ums_write_sector(struct ums *ums_dev,
ulong start, lbaint_t blkcnt, const void *buf)
{
- if (ums_dev->mmc->block_dev.block_write(ums_dev->dev_num,
- start + ums_dev->offset, blkcnt, buf) != blkcnt)
- return -1;
+ block_dev_desc_t *block_dev = &ums_dev->mmc->block_dev;
+ lbaint_t blkstart = start + ums_dev->offset;
+ int dev_num = block_dev->dev;
- return 0;
+ return block_dev->block_write(dev_num, blkstart, blkcnt, buf);
}
-static void ums_get_capacity(struct ums_device *ums_dev,
- long long int *capacity)
+static void ums_get_capacity(struct ums *ums_dev, long long int *capacity)
{
long long int tmp_capacity;
- tmp_capacity = (long long int) ((ums_dev->offset + ums_dev->part_size)
- * SECTOR_SIZE);
+ tmp_capacity = (long long int)((ums_dev->offset + ums_dev->part_size)
+ * SECTOR_SIZE);
*capacity = ums_dev->mmc->capacity - tmp_capacity;
}
-static struct ums_board_info ums_board = {
+static struct ums ums_dev = {
.read_sector = ums_read_sector,
.write_sector = ums_write_sector,
.get_capacity = ums_get_capacity,
- .name = "TRATS UMS disk",
- .ums_dev = {
- .mmc = NULL,
- .dev_num = 0,
- .offset = 0,
- .part_size = 0.
- },
+ .name = "UMS disk",
+ .offset = UMS_START_SECTOR,
+ .part_size = UMS_NUM_SECTORS,
};
-struct ums_board_info *board_ums_init(unsigned int dev_num, unsigned int offset,
- unsigned int part_size)
+struct ums *ums_init(unsigned int dev_num)
{
- struct mmc *mmc;
+ struct mmc *mmc = NULL;
mmc = find_mmc_device(dev_num);
if (!mmc)
return NULL;
- ums_board.ums_dev.mmc = mmc;
- ums_board.ums_dev.dev_num = dev_num;
- ums_board.ums_dev.offset = offset;
- ums_board.ums_dev.part_size = part_size;
+ ums_dev.mmc = mmc;
- return &ums_board;
+ return &ums_dev;
}
#endif