diff mbox

[v5,2/4] mtd: devices: elm: clean elm_load_syndrome

Message ID 1393845563-7800-3-git-send-email-pekon@ti.com
State Superseded
Headers show

Commit Message

pekon gupta March 3, 2014, 11:19 a.m. UTC
- 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(-)

Comments

Brian Norris March 20, 2014, 10:57 a.m. UTC | #1
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 mbox

Patch

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;
 	}
 }