mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-30 16:40:44 +09:00
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 gpmc_init(void);
|
||||||
void enable_gpmc_cs_config(const u32 *gpmc_config, const struct gpmc_cs *cs, u32 base,
|
void enable_gpmc_cs_config(const u32 *gpmc_config, const struct gpmc_cs *cs, u32 base,
|
||||||
u32 size);
|
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_uart_mux_conf(void);
|
||||||
void set_mux_conf_regs(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 cancel_out(u32 *num, u32 *den, u32 den_limit);
|
||||||
void sdelay(unsigned long);
|
void sdelay(unsigned long);
|
||||||
void make_cs1_contiguous(void);
|
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 power_init_r(void);
|
||||||
void do_omap3_emu_romcode_call(u32 service_id, u32 parameters);
|
void do_omap3_emu_romcode_call(u32 service_id, u32 parameters);
|
||||||
void omap3_set_aux_cr_secure(u32 acr);
|
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[])
|
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)
|
if (argc < 2 || argc > 3)
|
||||||
goto usage;
|
goto usage;
|
||||||
|
|
||||||
if (strncmp(argv[1], "hw", 2) == 0) {
|
if (strncmp(argv[1], "hw", 2) == 0) {
|
||||||
if (argc == 2) {
|
hw = 1;
|
||||||
omap_nand_switch_ecc(1, 1);
|
if (argc == 3) {
|
||||||
} else {
|
if (strncmp(argv[2], "bch8", 4) == 0)
|
||||||
if (strncmp(argv[2], "hamming", 7) == 0)
|
strength = 8;
|
||||||
omap_nand_switch_ecc(1, 1);
|
|
||||||
else if (strncmp(argv[2], "bch8", 4) == 0)
|
|
||||||
omap_nand_switch_ecc(1, 8);
|
|
||||||
else if (strncmp(argv[2], "bch16", 5) == 0)
|
else if (strncmp(argv[2], "bch16", 5) == 0)
|
||||||
omap_nand_switch_ecc(1, 16);
|
strength = 16;
|
||||||
else
|
else if (strncmp(argv[2], "hamming", 7) != 0)
|
||||||
goto usage;
|
goto usage;
|
||||||
}
|
}
|
||||||
} else if (strncmp(argv[1], "sw", 2) == 0) {
|
} else if (strncmp(argv[1], "sw", 2) == 0) {
|
||||||
if (argc == 2) {
|
hw = 0;
|
||||||
omap_nand_switch_ecc(0, 1);
|
if (argc == 3) {
|
||||||
} else {
|
if (strncmp(argv[2], "bch8", 4) == 0)
|
||||||
if (strncmp(argv[2], "hamming", 7) == 0)
|
strength = 8;
|
||||||
omap_nand_switch_ecc(0, 1);
|
else if (strncmp(argv[2], "hamming", 7) != 0)
|
||||||
else if (strncmp(argv[2], "bch8", 4) == 0)
|
|
||||||
omap_nand_switch_ecc(0, 8);
|
|
||||||
else
|
|
||||||
goto usage;
|
goto usage;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
goto usage;
|
goto usage;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return -omap_nand_switch_ecc(hw, strength);
|
||||||
|
|
||||||
usage:
|
usage:
|
||||||
printf ("Usage: nandecc %s\n", cmdtp->usage);
|
printf ("Usage: nandecc %s\n", cmdtp->usage);
|
||||||
|
Loading…
Reference in New Issue
Block a user