[PATCH v2, 1/2] driver: watchdog: reset watchdog in designware_wdt_stop() function

Li, Meng Meng.Li at windriver.com
Wed Apr 28 04:12:27 CEST 2021



> -----Original Message-----
> From: Sean Anderson <sean.anderson at seco.com>
> Sent: Tuesday, April 27, 2021 10:50 PM
> To: Stefan Roese <sr at denx.de>; Li, Meng <Meng.Li at windriver.com>; u-
> boot at lists.denx.de; chin.liang.see at intel.com; dinh.nguyen at intel.com;
> sjg at chromium.org
> Subject: Re: [PATCH v2, 1/2] driver: watchdog: reset watchdog in
> designware_wdt_stop() function
> 
> [Please note: This e-mail is from an EXTERNAL e-mail address]
> 
> On 4/27/21 10:23 AM, Stefan Roese wrote:
>  > On 27.04.21 10:41, Meng.Li at windriver.com wrote:
>  >> From: MengLi <meng.li at windriver.com>  >>  >> In uboot command line
> environment, watchdog is not able to be  >> stopped with below commands:
>  >> SOCFPGA_STRATIX10 # wdt dev watchdog at ffd00200  >>
> SOCFPGA_STRATIX10 # wdt stop  >> Refer to watchdog driver in linux kernel,
> it is also need to reset  >> watchdog after disable it so that the disable action
> takes effect.
>  >>
>  >> v2:
>  >> Change "#if CONFIG_IS_ENABLED(DM_RESET)" into  >> "if
> (CONFIG_IS_ENABLED(DM_RESET)) {", and define the variable  >> into if
> condition sentence.
>  >
>  > A few comments:
>  >
>  > This version changelog belongs below the "---" line.
>  >
>  > Please Cc interested people upon new versions, e.g. myself as I reviewed  >
> this patch.
>  >
>  > Other that this:
>  >
>  > Reviewed-by: Stefan Roese <sr at denx.de>  >  > Thanks,  > Stefan  >  >>
> Signed-off-by: Meng Li <Meng.Li at windriver.com>  >> ---
>  >>   drivers/watchdog/designware_wdt.c | 17 +++++++++++++++++
>  >>   1 file changed, 17 insertions(+)
>  >>
>  >> diff --git a/drivers/watchdog/designware_wdt.c
> b/drivers/watchdog/designware_wdt.c
>  >> index 12f09a7a39..57cad1effc 100644
>  >> --- a/drivers/watchdog/designware_wdt.c
>  >> +++ b/drivers/watchdog/designware_wdt.c
>  >> @@ -96,6 +96,23 @@ static int designware_wdt_stop(struct udevice
> *dev)
>  >>       designware_wdt_reset(dev);
>  >>       writel(0, priv->base + DW_WDT_CR);
>  >> +        if (CONFIG_IS_ENABLED(DM_RESET)) {
>  >> +        struct reset_ctl_bulk resets;
>  >> +        int ret;
>  >> +
>  >> +        ret = reset_get_bulk(dev, &resets);
> 
> Have you considered adding the resets to designware_wdt_priv and saving
> them when we request them in probe()?
> 

Yes! thanks for reminding me.
But I want to fix this issue by modifying the minimum range code. Because I and not the original person of creating this driver.
I don't want to other part of code if it is not essential.

Thanks,
Limeng

> --Sean
> 
>  >> +        if (ret)
>  >> +            return ret;
>  >> +
>  >> +        ret = reset_assert_bulk(&resets);
>  >> +        if (ret)
>  >> +            return ret;
>  >> +
>  >> +        ret = reset_deassert_bulk(&resets);
>  >> +        if (ret)
>  >> +            return ret;
>  >> +    }
>  >> +
>  >>       return 0;
>  >>   }
>  >>
>  >
>  >
>  > Viele Grüße,
>  > Stefan
>  >


More information about the U-Boot mailing list