Patchwork [v6,3/4] mtd: devices: elm: configure parallel channels based on ecc_steps

login
register
mail settings
Submitter pekon gupta
Date March 7, 2014, 1:02 p.m.
Message ID <1394197344-9468-4-git-send-email-pekon@ti.com>
Download mbox | patch
Permalink /patch/327948/
State New
Headers show

Comments

pekon gupta - March 7, 2014, 1:02 p.m.
Though ELM hardware can process upto maximum of 8 channels in parallel for
ECC error detection. But actual number of channels need to be processed in
parallel depends on ecc_steps (for page mode configuration).

Signed-off-by: Pekon Gupta <pekon@ti.com>
---
 drivers/mtd/devices/elm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Ezequiel Garcia - March 10, 2014, 2:08 p.m.
On Mar 07, Pekon Gupta wrote:
> Though ELM hardware can process upto maximum of 8 channels in parallel for
> ECC error detection. But actual number of channels need to be processed in
> parallel depends on ecc_steps (for page mode configuration).
>
 
This commit log needs some love ;) How about something along these lines:

"ELM hardware can process up to ERR_VECTOR_MAX channels in parallel for
ECC error detection. However, the actual number of channels that need to
be processed is the ECC step number." ?

Perhaps you could add some more information (I'm not too familiar with ELM),
what's the impact of this change? Does it fix any bug or the over-looping
was harmless?

> Signed-off-by: Pekon Gupta <pekon@ti.com>
> ---
>  drivers/mtd/devices/elm.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mtd/devices/elm.c b/drivers/mtd/devices/elm.c
> index f59c100..43fd81d 100644
> --- a/drivers/mtd/devices/elm.c
> +++ b/drivers/mtd/devices/elm.c
> @@ -174,7 +174,7 @@ static void elm_load_syndrome(struct elm_info *info,
>  	int i, offset;
>  	u32 val;
>  
> -	for (i = 0; i < ERROR_VECTOR_MAX; i++) {
> +	for (i = 0; i < info->ecc_steps; i++) {

I think it would be less confusing if you can add the ecc_steps field on this
patch, where you start to use it.

Patch

diff --git a/drivers/mtd/devices/elm.c b/drivers/mtd/devices/elm.c
index f59c100..43fd81d 100644
--- a/drivers/mtd/devices/elm.c
+++ b/drivers/mtd/devices/elm.c
@@ -174,7 +174,7 @@  static void elm_load_syndrome(struct elm_info *info,
 	int i, offset;
 	u32 val;
 
-	for (i = 0; i < ERROR_VECTOR_MAX; i++) {
+	for (i = 0; i < info->ecc_steps; i++) {
 
 		/* Check error reported */
 		if (err_vec[i].error_reported) {
@@ -242,7 +242,7 @@  static void elm_start_processing(struct elm_info *info,
 	 * Set syndrome vector valid, so that ELM module
 	 * will process it for vectors error is reported
 	 */
-	for (i = 0; i < ERROR_VECTOR_MAX; i++) {
+	for (i = 0; i < info->ecc_steps; i++) {
 		if (err_vec[i].error_reported) {
 			offset = ELM_SYNDROME_FRAGMENT_6 +
 				SYNDROME_FRAGMENT_REG_SIZE * i;
@@ -271,7 +271,7 @@  static void elm_error_correction(struct elm_info *info,
 	int offset;
 	u32 reg_val;
 
-	for (i = 0; i < ERROR_VECTOR_MAX; i++) {
+	for (i = 0; i < info->ecc_steps; i++) {
 
 		/* Check error reported */
 		if (err_vec[i].error_reported) {