[U-Boot] [PATCH 1/8] mtd: nand: sunxi: Fix strength minimum value

Boris Brezillon boris.brezillon at free-electrons.com
Wed Jan 24 07:57:23 UTC 2018


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.

> 
> 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 */



More information about the U-Boot mailing list