diff mbox

[U-Boot,1/4] atmel_nand: use nand ecc_{strength, step}_ds instead of our own function

Message ID 1448353614-26398-2-git-send-email-josh.wu@atmel.com
State Accepted, archived
Commit 3a2056719968c82fb0b5e079b47a146f68330879
Delegated to: Andreas Bießmann
Headers show

Commit Message

Josh Wu Nov. 24, 2015, 8:26 a.m. UTC
Since ecc_{strength,step}_ds is introduced in nand_chip structure for
minimum ecc requirements. So we can use them directly and remove our
own get_onfi_ecc_param function.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
---

 drivers/mtd/nand/atmel_nand.c | 44 +++++++------------------------------------
 1 file changed, 7 insertions(+), 37 deletions(-)

Comments

Andreas Bießmann Jan. 24, 2016, 9:22 p.m. UTC | #1
On 24.11.15 09:26, Josh Wu wrote:
> Since ecc_{strength,step}_ds is introduced in nand_chip structure for
> minimum ecc requirements. So we can use them directly and remove our
> own get_onfi_ecc_param function.
> 
> Signed-off-by: Josh Wu <josh.wu@atmel.com>

Reviewed-by: Andreas Bießmann <andreas.devel@googlemail.com>

> ---
> 
>  drivers/mtd/nand/atmel_nand.c | 44 +++++++------------------------------------
>  1 file changed, 7 insertions(+), 37 deletions(-)
Wenyou Yang Jan. 25, 2016, 2:41 a.m. UTC | #2
Hi Andreas,

Thank you for your review.

As Josh have left our company, I will follow up this patches.

> -----Original Message-----

> From: Andreas Bießmann [mailto:andreas.devel@googlemail.com]

> Sent: 2016年1月25日 5:23

> To: Wu, Josh <Josh.wu@atmel.com>; Scott Wood <scottwood@freescale.com>;

> U-Boot Mailing List <u-boot@lists.denx.de>

> Cc: Yang, Wenyou <Wenyou.Yang@atmel.com>; Bo Shen

> <voice.shen@gmail.com>

> Subject: Re: [PATCH 1/4] atmel_nand: use nand ecc_{strength,step}_ds instead

> of our own function

> 

> On 24.11.15 09:26, Josh Wu wrote:

> > Since ecc_{strength,step}_ds is introduced in nand_chip structure for

> > minimum ecc requirements. So we can use them directly and remove our

> > own get_onfi_ecc_param function.

> >

> > Signed-off-by: Josh Wu <josh.wu@atmel.com>

> 

> Reviewed-by: Andreas Bießmann <andreas.devel@googlemail.com>

> 

> > ---

> >

> >  drivers/mtd/nand/atmel_nand.c | 44

> > +++++++------------------------------------

> >  1 file changed, 7 insertions(+), 37 deletions(-)



Best Regards,
Wenyou Yang
diff mbox

Patch

diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index 0d4f327..e179f74 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -677,34 +677,6 @@  static void atmel_pmecc_core_init(struct mtd_info *mtd)
 
 #ifdef CONFIG_SYS_NAND_ONFI_DETECTION
 /*
- * get_onfi_ecc_param - Get ECC requirement from ONFI parameters
- * @ecc_bits: store the ONFI ECC correct bits capbility
- * @sector_size: in how many bytes that ONFI require to correct @ecc_bits
- *
- * Returns -1 if ONFI parameters is not supported. In this case @ecc_bits,
- * @sector_size are initialize to 0.
- * Return 0 if success to get the ECC requirement.
- */
-static int get_onfi_ecc_param(struct nand_chip *chip,
-		int *ecc_bits, int *sector_size)
-{
-	*ecc_bits = *sector_size = 0;
-
-	if (chip->onfi_params.ecc_bits == 0xff)
-		/* TODO: the sector_size and ecc_bits need to be find in
-		 * extended ecc parameter, currently we don't support it.
-		 */
-		return -1;
-
-	*ecc_bits = chip->onfi_params.ecc_bits;
-
-	/* The default sector size (ecc codeword size) is 512 */
-	*sector_size = 512;
-
-	return 0;
-}
-
-/*
  * pmecc_choose_ecc - Get ecc requirement from ONFI parameters. If
  *                    pmecc_corr_cap or pmecc_sector_size is 0, then set it as
  *                    ONFI ECC parameters.
@@ -724,17 +696,15 @@  static int pmecc_choose_ecc(struct atmel_nand_host *host,
 	/* Get ECC requirement from ONFI parameters */
 	*cap = *sector_size = 0;
 	if (chip->onfi_version) {
-		if (!get_onfi_ecc_param(chip, cap, sector_size)) {
-			MTDDEBUG(MTD_DEBUG_LEVEL1, "ONFI params, minimum required ECC: %d bits in %d bytes\n",
-				*cap, *sector_size);
-		} else {
-			dev_info(host->dev, "NAND chip ECC reqirement is in Extended ONFI parameter, we don't support yet.\n");
-		}
-	} else {
-		dev_info(host->dev, "NAND chip is not ONFI compliant, assume ecc_bits is 2 in 512 bytes");
+		*cap = chip->ecc_strength_ds;
+		*sector_size = chip->ecc_step_ds;
+		MTDDEBUG(MTD_DEBUG_LEVEL1, "ONFI params, minimum required ECC: %d bits in %d bytes\n",
+			 *cap, *sector_size);
 	}
+
 	if (*cap == 0 && *sector_size == 0) {
-		/* Non-ONFI compliant or use extended ONFI parameters */
+		/* Non-ONFI compliant */
+		dev_info(host->dev, "NAND chip is not ONFI compliant, assume ecc_bits is 2 in 512 bytes\n");
 		*cap = 2;
 		*sector_size = 512;
 	}