Commit abfe8afe88d6d8219602659f44981411e1daeb1d

Authored by Stephen Warren
Committed by Lukasz Majewski
1 parent 36ff05c4f9

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
... ... @@ -7,7 +7,6 @@
7 7  
8 8 obj-$(CONFIG_SOFT_I2C_MULTI_BUS) += multi_i2c.o
9 9 obj-$(CONFIG_THOR_FUNCTION) += thor.o
10   -obj-$(CONFIG_CMD_USB_MASS_STORAGE) += ums.o
11 10 obj-$(CONFIG_MISC_COMMON) += misc.o
12 11  
13 12 ifndef CONFIG_SPL_BUILD
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
... ... @@ -30,7 +30,6 @@
30 30  
31 31 int fsg_init(struct ums *);
32 32 void fsg_cleanup(void);
33   -struct ums *ums_init(unsigned int);
34 33 int fsg_main_thread(void *);
35 34 int fsg_add(struct usb_configuration *c);
36 35 #endif /* __USB_MASS_STORAGE_H__ */