@ -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 )
mmc - > has_init = 0 ;
if ( mmc_init ( mmc ) )
return NULL ;
return mmc ;
@ -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 ;