[PATCH] mtd: nand: raw: atmel: Use ONFI ECC params if available

Alexander Dahl ada at thorsis.com
Wed Jul 10 09:28:52 CEST 2024


Hello,

Am Tue, Jul 09, 2024 at 10:28:12PM +0000 schrieb Zixun Li:
> When ECC parameters are not specified in DT, first try ONFI ECC parameters
> before fallback to maximum strength. To be inline with kernel driver behavior.
> 
> Signed-off-by: Zixun LI <zli at ogga.fr>
> ---
>  drivers/mtd/nand/raw/atmel/nand-controller.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c
> index 9873d11254..d29a9c6f10 100644
> --- a/drivers/mtd/nand/raw/atmel/nand-controller.c
> +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c
> @@ -1064,11 +1064,15 @@ static int atmel_nand_pmecc_init(struct nand_chip *chip)
>  		req.ecc.strength = ATMEL_PMECC_MAXIMIZE_ECC_STRENGTH;
>  	else if (chip->ecc.strength)
>  		req.ecc.strength = chip->ecc.strength;
> +	else if(chip->ecc_strength_ds)
> +		req.ecc.strength = chip->ecc_strength_ds;
>  	else
>  		req.ecc.strength = ATMEL_PMECC_MAXIMIZE_ECC_STRENGTH;
>  
>  	if (chip->ecc.size)
>  		req.ecc.sectorsize = chip->ecc.size;
> +	else if(chip->ecc_step_ds)
> +		req.ecc.sectorsize = chip->ecc_step_ds;

Despite the missing space between 'if' and the opening bracket
(checkpatch should have told you?) this looks very much like what got
into linux with v4.11 but was changed/reworked multiple times
afterwards.  I wonder why this was not ported to U-Boot when
introducing this driver?  In 6a8dfd57220d ("nand: atmel: Add DM based
NAND driver") it was claimed the driver was ported from
linux-5.4-at91, so this feature was probably dropped intentionally?
Does anyone know why?

(Cc-ing the original driver author/porter.)

Greets
Alex

>  	else
>  		req.ecc.sectorsize = ATMEL_PMECC_SECTOR_SIZE_AUTO;
>  
> -- 
> 2.45.1
> 


More information about the U-Boot mailing list