
Hi Stephen,
On May 23, 2014, at 10:24 PM, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
This allows callers to inject mmc->has_init = 0 between finding the MMC device, and calling mmc_init(), which forces mmc_init() to rescan the HW. Future changes will use this feature.
Signed-off-by: Stephen Warren swarren@nvidia.com
common/cmd_mmc.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c index 9e6a26fe62a2..6741ebee3bca 100644 --- a/common/cmd_mmc.c +++ b/common/cmd_mmc.c @@ -92,7 +92,7 @@ static void print_mmcinfo(struct mmc *mmc)
printf("Bus Width: %d-bit\n", mmc->bus_width); } -static struct mmc *init_mmc_device(int dev) +static struct mmc *init_mmc_device(int dev, bool force_init) { struct mmc *mmc; mmc = find_mmc_device(dev); @@ -100,6 +100,8 @@ static struct mmc *init_mmc_device(int dev) printf("no mmc device at slot %x\n", dev); return NULL; }
- if (force_init)
if (mmc_init(mmc)) return NULL; return mmc;mmc->has_init = 0;
@@ -117,7 +119,7 @@ static int do_mmcinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) } }
- mmc = init_mmc_device(curr_device);
- mmc = init_mmc_device(curr_device, false); if (!mmc) return CMD_RET_FAILURE;
@@ -247,7 +249,7 @@ static int do_mmcrpmb(cmd_tbl_t *cmdtp, int flag, if (flag == CMD_FLAG_REPEAT && !cp->repeatable) return CMD_RET_SUCCESS;
- mmc = init_mmc_device(curr_device);
- mmc = init_mmc_device(curr_device, false); if (!mmc) return CMD_RET_FAILURE;
@@ -292,7 +294,7 @@ static int do_mmc_read(cmd_tbl_t *cmdtp, int flag, blk = simple_strtoul(argv[2], NULL, 16); cnt = simple_strtoul(argv[3], NULL, 16);
- mmc = init_mmc_device(curr_device);
- mmc = init_mmc_device(curr_device, false); if (!mmc) return CMD_RET_FAILURE;
@@ -320,7 +322,7 @@ static int do_mmc_write(cmd_tbl_t *cmdtp, int flag, blk = simple_strtoul(argv[2], NULL, 16); cnt = simple_strtoul(argv[3], NULL, 16);
- mmc = init_mmc_device(curr_device);
- mmc = init_mmc_device(curr_device, false); if (!mmc) return CMD_RET_FAILURE;
@@ -348,7 +350,7 @@ static int do_mmc_erase(cmd_tbl_t *cmdtp, int flag, blk = simple_strtoul(argv[1], NULL, 16); cnt = simple_strtoul(argv[2], NULL, 16);
- mmc = init_mmc_device(curr_device);
- mmc = init_mmc_device(curr_device, false); if (!mmc) return CMD_RET_FAILURE;
@@ -387,7 +389,7 @@ static int do_mmc_part(cmd_tbl_t *cmdtp, int flag, block_dev_desc_t *mmc_dev; struct mmc *mmc;
- mmc = init_mmc_device(curr_device);
- mmc = init_mmc_device(curr_device, false); if (!mmc) return CMD_RET_FAILURE;
@@ -422,7 +424,7 @@ static int do_mmc_dev(cmd_tbl_t *cmdtp, int flag, return CMD_RET_USAGE; }
- mmc = init_mmc_device(dev);
- mmc = init_mmc_device(dev, false); if (!mmc) return CMD_RET_FAILURE;
@@ -462,7 +464,7 @@ static int do_mmc_bootbus(cmd_tbl_t *cmdtp, int flag, reset = simple_strtoul(argv[3], NULL, 10); mode = simple_strtoul(argv[4], NULL, 10);
- mmc = init_mmc_device(dev);
- mmc = init_mmc_device(dev, false); if (!mmc) return CMD_RET_FAILURE;
@@ -487,7 +489,7 @@ static int do_mmc_boot_resize(cmd_tbl_t *cmdtp, int flag, bootsize = simple_strtoul(argv[2], NULL, 10); rpmbsize = simple_strtoul(argv[3], NULL, 10);
- mmc = init_mmc_device(dev);
- mmc = init_mmc_device(dev, false); if (!mmc) return CMD_RET_FAILURE;
@@ -520,7 +522,7 @@ static int do_mmc_partconf(cmd_tbl_t *cmdtp, int flag, part_num = simple_strtoul(argv[3], NULL, 10); access = simple_strtoul(argv[4], NULL, 10);
- mmc = init_mmc_device(dev);
- mmc = init_mmc_device(dev, false); if (!mmc) return CMD_RET_FAILURE;
@@ -555,7 +557,7 @@ static int do_mmc_rst_func(cmd_tbl_t *cmdtp, int flag, return CMD_RET_USAGE; }
- mmc = init_mmc_device(dev);
- mmc = init_mmc_device(dev, false); if (!mmc) return CMD_RET_FAILURE;
-- 1.8.1.5
Looks fine. I have a slight preference for not using bools in C code, but I see it's already creeping in the codebase. I'll apply it as is, and if we have any complaints by people using really ancient compilers I'll convert to int.
Thanks, applied.
-- Pantelis
Acked-by: Pantelis Antoniou panto@antoniou-consulting.com