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

Balamanikandan.Gunasundar at microchip.com Balamanikandan.Gunasundar at microchip.com
Thu Jul 25 11:36:19 CEST 2024


Acked-by: Balamanikandan Gunasundar 
<balamanikandan.gunasundar at microchip.com>

On 22/07/24 3:15 am, Zixun LI wrote:
> [Some people who received this message don't often get email from admin at hifiphile.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
> 
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> When ECC parameters are not specified in DT, first try ONFI ECC parameters
> before fallback to maximum strength.
> 
> It's the Linux driver behavior since the driver rewriting in f88fc12.
> 
>  From then 2 nand system refactors have been done in 6a1b66d6 and 53576c7b,
> chip->ecc_strength_ds and chip->ecc_step_ds became
> nanddev_get_ecc_requirements(). U-Boot didn't follow the refactor and
> always use these 2 fields.
> 
> v2: Fix formatting, add upstream commit hash.
> 
> 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 ee4ec6da58..817fab4ca3 100644
> --- a/drivers/mtd/nand/raw/atmel/nand-controller.c
> +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c
> @@ -1029,11 +1029,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;
>          else
>                  req.ecc.sectorsize = ATMEL_PMECC_SECTOR_SIZE_AUTO;
> 
> --
> 2.45.2
> 



More information about the U-Boot mailing list