> -----Original Message----- > From: Sean Anderson <sean.ander...@seco.com> > Sent: Tuesday, April 27, 2021 10:50 PM > To: Stefan Roese <s...@denx.de>; Li, Meng <meng...@windriver.com>; u- > b...@lists.denx.de; chin.liang....@intel.com; dinh.ngu...@intel.com; > s...@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...@windriver.com wrote: > >> From: MengLi <meng...@windriver.com> >> >> In uboot command line > environment, watchdog is not able to be >> stopped with below commands: > >> SOCFPGA_STRATIX10 # wdt dev watchdog@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 <s...@denx.de> > > Thanks, > Stefan > >> > Signed-off-by: Meng Li <meng...@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 > >