[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