Message ID | 1393845563-7800-3-git-send-email-pekon@ti.com |
---|---|
State | Superseded |
Headers | show |
On Mon, Mar 03, 2014 at 04:49:21PM +0530, Pekon Gupta wrote: > - replace ECC_BYTES* macros with ecc->bytes ^^ this comment doesn't quite match. But the patch looks OK. > - Add scalability for future ecc-schemes > > Signed-off-by: Pekon Gupta <pekon@ti.com> > --- > drivers/mtd/devices/elm.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/drivers/mtd/devices/elm.c b/drivers/mtd/devices/elm.c > index 7fda50f..f59c100 100644 > --- a/drivers/mtd/devices/elm.c > +++ b/drivers/mtd/devices/elm.c > @@ -181,10 +181,8 @@ static void elm_load_syndrome(struct elm_info *info, > elm_configure_page_mode(info, i, true); > offset = ELM_SYNDROME_FRAGMENT_0 + > SYNDROME_FRAGMENT_REG_SIZE * i; > - > - /* BCH8 */ > - if (info->bch_type) { > - > + switch (info->bch_type) { > + case BCH8_ECC: > /* syndrome fragment 0 = ecc[9-12B] */ > val = cpu_to_be32(*(u32 *) &ecc[9]); > elm_write_reg(info, offset, val); > @@ -203,7 +201,8 @@ static void elm_load_syndrome(struct elm_info *info, > offset += 4; > val = ecc[0]; > elm_write_reg(info, offset, val); > - } else { > + break; > + case BCH4_ECC: > /* syndrome fragment 0 = ecc[20-52b] bits */ > val = (cpu_to_be32(*(u32 *) &ecc[3]) >> 4) | > ((ecc[2] & 0xf) << 28); > @@ -213,11 +212,14 @@ static void elm_load_syndrome(struct elm_info *info, > offset += 4; > val = cpu_to_be32(*(u32 *) &ecc[0]) >> 12; > elm_write_reg(info, offset, val); > + break; > + default: > + pr_err("invalid config bch_type\n"); > } > } > > /* Update ecc pointer with ecc byte size */ > - ecc += info->bch_type ? BCH8_SIZE : BCH4_SIZE; > + ecc += info->ecc_step_bytes; > } > } > Brian
diff --git a/drivers/mtd/devices/elm.c b/drivers/mtd/devices/elm.c index 7fda50f..f59c100 100644 --- a/drivers/mtd/devices/elm.c +++ b/drivers/mtd/devices/elm.c @@ -181,10 +181,8 @@ static void elm_load_syndrome(struct elm_info *info, elm_configure_page_mode(info, i, true); offset = ELM_SYNDROME_FRAGMENT_0 + SYNDROME_FRAGMENT_REG_SIZE * i; - - /* BCH8 */ - if (info->bch_type) { - + switch (info->bch_type) { + case BCH8_ECC: /* syndrome fragment 0 = ecc[9-12B] */ val = cpu_to_be32(*(u32 *) &ecc[9]); elm_write_reg(info, offset, val); @@ -203,7 +201,8 @@ static void elm_load_syndrome(struct elm_info *info, offset += 4; val = ecc[0]; elm_write_reg(info, offset, val); - } else { + break; + case BCH4_ECC: /* syndrome fragment 0 = ecc[20-52b] bits */ val = (cpu_to_be32(*(u32 *) &ecc[3]) >> 4) | ((ecc[2] & 0xf) << 28); @@ -213,11 +212,14 @@ static void elm_load_syndrome(struct elm_info *info, offset += 4; val = cpu_to_be32(*(u32 *) &ecc[0]) >> 12; elm_write_reg(info, offset, val); + break; + default: + pr_err("invalid config bch_type\n"); } } /* Update ecc pointer with ecc byte size */ - ecc += info->bch_type ? BCH8_SIZE : BCH4_SIZE; + ecc += info->ecc_step_bytes; } }
- replace ECC_BYTES* macros with ecc->bytes - Add scalability for future ecc-schemes Signed-off-by: Pekon Gupta <pekon@ti.com> --- drivers/mtd/devices/elm.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)