[PATCH v5 2/4] mtd: devices: elm: clean elm_load_syndrome
Brian Norris
computersforpeace at gmail.com
Thu Mar 20 06:57:51 EDT 2014
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 at 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
More information about the linux-mtd
mailing list