[PATCH v2 2/7] mtd: rawnand: brcmnand: Fix potential false time out warning

Michael Nazzareno Trimarchi michael at amarulasolutions.com
Sun Sep 29 19:20:18 CEST 2024


All, Dario

On Tue, Sep 17, 2024 at 2:20 AM William Zhang
<william.zhang at broadcom.com> wrote:
>
> > -----Original Message-----
> > From: Linus Walleij <linus.walleij at linaro.org>
> > Sent: Monday, September 16, 2024 2:59 AM
> > To: u-boot at lists.denx.de; Dario Binacchi
> > <dario.binacchi at amarulasolutions.com>; Michael Trimarchi
> > <michael at amarulasolutions.com>; Anand Gore
> > <anand.gore at broadcom.com>; William Zhang
> > <william.zhang at broadcom.com>; Kursad Oney
> > <kursad.oney at broadcom.com>; Philippe Reynes
> > <philippe.reynes at softathome.com>
> > Cc: Linus Walleij <linus.walleij at linaro.org>; Florian Fainelli
> > <florian.fainelli at broadcom.com>; Miquel Raynal
> > <miquel.raynal at bootlin.com>
> > Subject: [PATCH v2 2/7] mtd: rawnand: brcmnand: Fix potential false time
> > out warning
> >
> > From: William Zhang <william.zhang at broadcom.com>
> >
> > Backport from the Linux kernel:
> > commit 9cc0a598b944816f2968baf2631757f22721b996
> > "mtd: rawnand: brcmnand: Fix potential false time out warning"
> >
> > If system is busy during the command status polling function, the driver
> > may not get the chance to poll the status register till the end of time
> > out and return the premature status.  Do a final check after time out
> > happens to ensure reading the correct status.
> >
> > Signed-off-by: William Zhang <william.zhang at broadcom.com>
> > Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
> > Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
> > Link: https://lore.kernel.org/linux-mtd/20230706182909.79151-3-
> > william.zhang at broadcom.com
> > Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
> > ---
> >  drivers/mtd/nand/raw/brcmnand/brcmnand.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
> > b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
> > index 700d1122639f..46a4107a83a9 100644
> > --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
> > +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
> > @@ -1011,6 +1011,14 @@ static int bcmnand_ctrl_poll_status(struct
> > brcmnand_controller *ctrl,
> >       } while (get_timer(base) < limit);
> >  #endif /* __UBOOT__ */
> >
> > +     /*
> > +      * do a final check after time out in case the CPU was busy and the
> > driver
> > +      * did not get enough time to perform the polling to avoid false
> > alarms
> > +      */
> > +     val = brcmnand_read_reg(ctrl, BRCMNAND_INTFC_STATUS);
> > +     if ((val & mask) == expected_val)
> > +             return 0;
> > +
> >       dev_warn(ctrl->dev, "timeout on status poll (expected %x got %x)\n",
> >                expected_val, val & mask);
> >
> >
> > --
> > 2.46.0
>
> Reviewed-by: William Zhang <william.zhang at broadcom.com>

Acked-by; Michael Trimarchi <michael at amarulasolutions.com>

-- 
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
michael at amarulasolutions.com
__________________________________

Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
info at amarulasolutions.com
www.amarulasolutions.com


More information about the U-Boot mailing list