[U-Boot] [PATCH 1/8] mtd: nand: sunxi: Fix strength minimum value
Miquel Raynal
miquel.raynal at free-electrons.com
Wed Jan 24 22:19:53 UTC 2018
Hello Boris,
On Wed, 24 Jan 2018 08:57:23 +0100
Boris Brezillon <boris.brezillon at free-electrons.com> wrote:
> On Wed, 24 Jan 2018 01:44:47 +0100
> Miquel Raynal <miquel.raynal at free-electrons.com> 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 <miquel.raynal at free-electrons.com>
> > ---
> > 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
More information about the U-Boot
mailing list