arm: OMAP2+: nandecc: propagate error to command return status
Currently nandecc returns zero even if underlaying omap_nand_switch_ecc function fails. Fix that by propagating error returned to command return value. Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
e5bda8a2d8
commit
50075153fe
@ -29,7 +29,7 @@ void sdelay(unsigned long);
|
||||
void gpmc_init(void);
|
||||
void enable_gpmc_cs_config(const u32 *gpmc_config, const struct gpmc_cs *cs, u32 base,
|
||||
u32 size);
|
||||
void omap_nand_switch_ecc(uint32_t, uint32_t);
|
||||
int omap_nand_switch_ecc(uint32_t, uint32_t);
|
||||
|
||||
void set_uart_mux_conf(void);
|
||||
void set_mux_conf_regs(void);
|
||||
|
@ -68,7 +68,7 @@ u32 wait_on_value(u32, u32, void *, u32);
|
||||
void cancel_out(u32 *num, u32 *den, u32 den_limit);
|
||||
void sdelay(unsigned long);
|
||||
void make_cs1_contiguous(void);
|
||||
void omap_nand_switch_ecc(uint32_t, uint32_t);
|
||||
int omap_nand_switch_ecc(uint32_t, uint32_t);
|
||||
void power_init_r(void);
|
||||
void do_omap3_emu_romcode_call(u32 service_id, u32 parameters);
|
||||
void omap3_set_aux_cr_secure(u32 acr);
|
||||
|
@ -269,38 +269,34 @@ void abort(void)
|
||||
*****************************************************************************/
|
||||
static int do_switch_ecc(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
||||
{
|
||||
int hw, strength = 1;
|
||||
|
||||
if (argc < 2 || argc > 3)
|
||||
goto usage;
|
||||
|
||||
if (strncmp(argv[1], "hw", 2) == 0) {
|
||||
if (argc == 2) {
|
||||
omap_nand_switch_ecc(1, 1);
|
||||
} else {
|
||||
if (strncmp(argv[2], "hamming", 7) == 0)
|
||||
omap_nand_switch_ecc(1, 1);
|
||||
else if (strncmp(argv[2], "bch8", 4) == 0)
|
||||
omap_nand_switch_ecc(1, 8);
|
||||
hw = 1;
|
||||
if (argc == 3) {
|
||||
if (strncmp(argv[2], "bch8", 4) == 0)
|
||||
strength = 8;
|
||||
else if (strncmp(argv[2], "bch16", 5) == 0)
|
||||
omap_nand_switch_ecc(1, 16);
|
||||
else
|
||||
strength = 16;
|
||||
else if (strncmp(argv[2], "hamming", 7) != 0)
|
||||
goto usage;
|
||||
}
|
||||
} else if (strncmp(argv[1], "sw", 2) == 0) {
|
||||
if (argc == 2) {
|
||||
omap_nand_switch_ecc(0, 1);
|
||||
} else {
|
||||
if (strncmp(argv[2], "hamming", 7) == 0)
|
||||
omap_nand_switch_ecc(0, 1);
|
||||
else if (strncmp(argv[2], "bch8", 4) == 0)
|
||||
omap_nand_switch_ecc(0, 8);
|
||||
else
|
||||
hw = 0;
|
||||
if (argc == 3) {
|
||||
if (strncmp(argv[2], "bch8", 4) == 0)
|
||||
strength = 8;
|
||||
else if (strncmp(argv[2], "hamming", 7) != 0)
|
||||
goto usage;
|
||||
}
|
||||
} else {
|
||||
goto usage;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return -omap_nand_switch_ecc(hw, strength);
|
||||
|
||||
usage:
|
||||
printf ("Usage: nandecc %s\n", cmdtp->usage);
|
||||
|
Loading…
Reference in New Issue
Block a user