Commit abfe8afe88d6d8219602659f44981411e1daeb1d
Committed by
Lukasz Majewski
1 parent
36ff05c4f9
Exists in
v2017.01-smarct4x
and in
40 other branches
ums: move IO support code to common location
There's nothing Samsung-/board-specfic about the implementation of ums_init(). Move the code into cmd_usb_mass_storage.c, so that it can be shared by any user of that command. Cc: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>
Showing 4 changed files with 46 additions and 57 deletions Side-by-side Diff
board/samsung/common/Makefile
board/samsung/common/ums.c
1 | -/* | |
2 | - * Copyright (C) 2013 Samsung Electronics | |
3 | - * Lukasz Majewski <l.majewski@samsung.com> | |
4 | - * | |
5 | - * SPDX-License-Identifier: GPL-2.0+ | |
6 | - */ | |
7 | - | |
8 | -#include <common.h> | |
9 | -#include <usb_mass_storage.h> | |
10 | -#include <mmc.h> | |
11 | -#include <part.h> | |
12 | - | |
13 | -static int ums_read_sector(struct ums *ums_dev, | |
14 | - ulong start, lbaint_t blkcnt, void *buf) | |
15 | -{ | |
16 | - block_dev_desc_t *block_dev = ums_dev->block_dev; | |
17 | - lbaint_t blkstart = start + ums_dev->start_sector; | |
18 | - int dev_num = block_dev->dev; | |
19 | - | |
20 | - return block_dev->block_read(dev_num, blkstart, blkcnt, buf); | |
21 | -} | |
22 | - | |
23 | -static int ums_write_sector(struct ums *ums_dev, | |
24 | - ulong start, lbaint_t blkcnt, const void *buf) | |
25 | -{ | |
26 | - block_dev_desc_t *block_dev = ums_dev->block_dev; | |
27 | - lbaint_t blkstart = start + ums_dev->start_sector; | |
28 | - int dev_num = block_dev->dev; | |
29 | - | |
30 | - return block_dev->block_write(dev_num, blkstart, blkcnt, buf); | |
31 | -} | |
32 | - | |
33 | -static struct ums ums_dev = { | |
34 | - .read_sector = ums_read_sector, | |
35 | - .write_sector = ums_write_sector, | |
36 | - .name = "UMS disk", | |
37 | -}; | |
38 | - | |
39 | -struct ums *ums_init(unsigned int dev_num) | |
40 | -{ | |
41 | - struct mmc *mmc = NULL; | |
42 | - | |
43 | - mmc = find_mmc_device(dev_num); | |
44 | - if (!mmc || mmc_init(mmc)) | |
45 | - return NULL; | |
46 | - | |
47 | - ums_dev.block_dev = &mmc->block_dev; | |
48 | - ums_dev.start_sector = 0; | |
49 | - ums_dev.num_sectors = mmc->capacity / SECTOR_SIZE; | |
50 | - | |
51 | - printf("UMS: disk start sector: %#x, count: %#x\n", | |
52 | - ums_dev.start_sector, ums_dev.num_sectors); | |
53 | - | |
54 | - return &ums_dev; | |
55 | -} |
common/cmd_usb_mass_storage.c
... | ... | @@ -9,8 +9,54 @@ |
9 | 9 | #include <common.h> |
10 | 10 | #include <command.h> |
11 | 11 | #include <g_dnl.h> |
12 | +#include <mmc.h> | |
13 | +#include <part.h> | |
12 | 14 | #include <usb.h> |
13 | 15 | #include <usb_mass_storage.h> |
16 | + | |
17 | +static int ums_read_sector(struct ums *ums_dev, | |
18 | + ulong start, lbaint_t blkcnt, void *buf) | |
19 | +{ | |
20 | + block_dev_desc_t *block_dev = ums_dev->block_dev; | |
21 | + lbaint_t blkstart = start + ums_dev->start_sector; | |
22 | + int dev_num = block_dev->dev; | |
23 | + | |
24 | + return block_dev->block_read(dev_num, blkstart, blkcnt, buf); | |
25 | +} | |
26 | + | |
27 | +static int ums_write_sector(struct ums *ums_dev, | |
28 | + ulong start, lbaint_t blkcnt, const void *buf) | |
29 | +{ | |
30 | + block_dev_desc_t *block_dev = ums_dev->block_dev; | |
31 | + lbaint_t blkstart = start + ums_dev->start_sector; | |
32 | + int dev_num = block_dev->dev; | |
33 | + | |
34 | + return block_dev->block_write(dev_num, blkstart, blkcnt, buf); | |
35 | +} | |
36 | + | |
37 | +static struct ums ums_dev = { | |
38 | + .read_sector = ums_read_sector, | |
39 | + .write_sector = ums_write_sector, | |
40 | + .name = "UMS disk", | |
41 | +}; | |
42 | + | |
43 | +struct ums *ums_init(unsigned int dev_num) | |
44 | +{ | |
45 | + struct mmc *mmc = NULL; | |
46 | + | |
47 | + mmc = find_mmc_device(dev_num); | |
48 | + if (!mmc || mmc_init(mmc)) | |
49 | + return NULL; | |
50 | + | |
51 | + ums_dev.block_dev = &mmc->block_dev; | |
52 | + ums_dev.start_sector = 0; | |
53 | + ums_dev.num_sectors = mmc->capacity / SECTOR_SIZE; | |
54 | + | |
55 | + printf("UMS: disk start sector: %#x, count: %#x\n", | |
56 | + ums_dev.start_sector, ums_dev.num_sectors); | |
57 | + | |
58 | + return &ums_dev; | |
59 | +} | |
14 | 60 | |
15 | 61 | int do_usb_mass_storage(cmd_tbl_t *cmdtp, int flag, |
16 | 62 | int argc, char * const argv[]) |
include/usb_mass_storage.h