On Wed, 24 Jan 2018 01:44:47 +0100
Miquel Raynal <miquel.ray...@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.

> 
> Signed-off-by: Miquel Raynal <miquel.ray...@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 */

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to