From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miquel Raynal Date: Wed, 24 Jan 2018 23:19:53 +0100 Subject: [U-Boot] [PATCH 1/8] mtd: nand: sunxi: Fix strength minimum value In-Reply-To: <20180124085723.5d1ed71d@bbrezillon> References: <20180124004454.5759-1-miquel.raynal@free-electrons.com> <20180124004454.5759-2-miquel.raynal@free-electrons.com> <20180124085723.5d1ed71d@bbrezillon> Message-ID: <20180124231953.2785a39b@xps13> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Boris, On Wed, 24 Jan 2018 08:57:23 +0100 Boris Brezillon wrote: > On Wed, 24 Jan 2018 01:44:47 +0100 > Miquel Raynal wrote: > > > When no requirement in Device Tree is given about the ECC strength and > > step size, the engine should fallback on the minimal working case for > > this engine (16b/1024B) instead of the NAND chip requirement which might > > be simply unreachable. > > Actually, this is not what this patch is fixing. It fixes all cases > where the requested ECC strength does not exactly match the strengths > supported by the ECC engine. In this case, the driver is selecting the > closest strength meeting the 'selected_strength > requested_strength' > constraint. The problem was that we were not updating ecc->strength > with the real strength, which is what you're fixing here. That is entirely right, I kept one explanation on the easiest case where this is needed: when there is not ECC-related property in the DT. > > > > > Signed-off-by: Miquel Raynal > > --- > > drivers/mtd/nand/sunxi_nand.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c > > index 8bc3828854..e8e7ad8ac5 100644 > > --- a/drivers/mtd/nand/sunxi_nand.c > > +++ b/drivers/mtd/nand/sunxi_nand.c > > @@ -1417,6 +1417,7 @@ static int sunxi_nand_hw_common_ecc_ctrl_init(struct mtd_info *mtd, > > goto err; > > } > > > > + ecc->strength = strengths[i]; > > data->mode = i; > > > > /* HW ECC always request ECC bytes for 1024 bytes blocks */ > -- Miquel Raynal, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com