From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peng Fan Date: Tue, 20 Jan 2015 14:35:26 +0800 Subject: [U-Boot] [PATCH 1/2] mtd:mxs:nand calculate ecc strength dynamically In-Reply-To: <1418963953-1623-1-git-send-email-Peng.Fan@freescale.com> References: <1418963953-1623-1-git-send-email-Peng.Fan@freescale.com> Message-ID: <54BDF72E.90108@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Marek, Since you are familiar with this driver, would you please help review this patch? On 12/19/2014 12:39 PM, Peng Fan wrote: > Calculate ecc strength according oobsize, but not hardcoded > which is not aligned with kernel driver > > Signed-off-by: Peng Fan > Signed-off-by: Ye.Li > --- > drivers/mtd/nand/mxs_nand.c | 22 ++++------------------ > 1 file changed, 4 insertions(+), 18 deletions(-) > > diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c > index 7a064ab..a45fcf9 100644 > --- a/drivers/mtd/nand/mxs_nand.c > +++ b/drivers/mtd/nand/mxs_nand.c > @@ -146,26 +146,12 @@ static uint32_t mxs_nand_aux_status_offset(void) > static inline uint32_t mxs_nand_get_ecc_strength(uint32_t page_data_size, > uint32_t page_oob_size) > { > - if (page_data_size == 2048) { > - if (page_oob_size == 64) > - return 8; > + int ecc_strength; > > - if (page_oob_size == 112) > - return 14; > - } > - > - if (page_data_size == 4096) { > - if (page_oob_size == 128) > - return 8; > - > - if (page_oob_size == 218) > - return 16; > + ecc_strength = ((page_oob_size - MXS_NAND_METADATA_SIZE) * 8) > + / (13 * mxs_nand_ecc_chunk_cnt(page_data_size)); > > - if (page_oob_size == 224) > - return 16; > - } > - > - return 0; > + return round_down(ecc_strength, 2); > } > > static inline uint32_t mxs_nand_get_mark_offset(uint32_t page_data_size, Thanks, Peng.