Hi Christophe

On 7/31/20 9:53 AM, Christophe Kerello wrote:
> FMC2_TIMEOUT_5S will be used each time that we need to wait.
> It was seen, during stress tests in an overloaded system,
> that we could be close to 1 second, even if we never met this
> value. To be safe, FMC2_TIMEOUT_MS is set to 5 seconds.
>
> Signed-off-by: Christophe Kerello <christophe.kere...@st.com>
> ---
>
>  drivers/mtd/nand/raw/stm32_fmc2_nand.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/stm32_fmc2_nand.c 
> b/drivers/mtd/nand/raw/stm32_fmc2_nand.c
> index f43e3ec..2e947a3 100644
> --- a/drivers/mtd/nand/raw/stm32_fmc2_nand.c
> +++ b/drivers/mtd/nand/raw/stm32_fmc2_nand.c
> @@ -131,6 +131,8 @@
>  
>  #define FMC2_NSEC_PER_SEC            1000000000L
>  
> +#define FMC2_TIMEOUT_5S                      5000000
> +
>  enum stm32_fmc2_ecc {
>       FMC2_ECC_HAM = 1,
>       FMC2_ECC_BCH4 = 4,
> @@ -339,7 +341,7 @@ static int stm32_fmc2_ham_calculate(struct mtd_info *mtd, 
> const u8 *data,
>       int ret;
>  
>       ret = readl_poll_timeout(fmc2->io_base + FMC2_SR, sr,
> -                              sr & FMC2_SR_NWRF, 10000);
> +                              sr & FMC2_SR_NWRF, FMC2_TIMEOUT_5S);
>       if (ret < 0) {
>               pr_err("Ham timeout\n");
>               return ret;
> @@ -424,7 +426,7 @@ static int stm32_fmc2_bch_calculate(struct mtd_info *mtd, 
> const u8 *data,
>  
>       /* Wait until the BCH code is ready */
>       ret = readl_poll_timeout(fmc2->io_base + FMC2_BCHISR, bchisr,
> -                              bchisr & FMC2_BCHISR_EPBRF, 10000);
> +                              bchisr & FMC2_BCHISR_EPBRF, FMC2_TIMEOUT_5S);
>       if (ret < 0) {
>               pr_err("Bch timeout\n");
>               return ret;
> @@ -472,7 +474,7 @@ static int stm32_fmc2_bch_correct(struct mtd_info *mtd, 
> u8 *dat,
>  
>       /* Wait until the decoding error is ready */
>       ret = readl_poll_timeout(fmc2->io_base + FMC2_BCHISR, bchisr,
> -                              bchisr & FMC2_BCHISR_DERF, 10000);
> +                              bchisr & FMC2_BCHISR_DERF, FMC2_TIMEOUT_5S);
>       if (ret < 0) {
>               pr_err("Bch timeout\n");
>               return ret;

Reviewed-by: Patrice Chotard <patrice.chot...@st.com>

Thanks

Patrice

Reply via email to