Re: [PATCH 1/3] watchdog: sprd: should not disable watchdog in resume

From: Chunyan Zhang
Date: Tue Oct 27 2020 - 05:34:46 EST


On Mon, 26 Oct 2020 at 22:27, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>
> On 10/26/20 1:09 AM, Chunyan Zhang wrote:
> > From: Lingling Xu <ling_ling.xu@xxxxxxxxxx>
> >
> > Don't disable watchdog in resume process, otherwise system would crash
> > once kick watchdog.
> >
>
> This is a bit misleading: It is only disabled if the attempt to start it
> has failed. Was this observed in practice ? If so, it might make sense
> to identify and fix the underlying problem instead of trying to work
> around it (or is this addressed with the second patch of the series ?)

Yes, I think the root cause of this problem was like what I explained
in the 3rd patch in this series.
Lingling found there was something wrong in sprd_wdt_pm_resume() when
debugging that issue, then we had this patch.

>
> Anyway, the patch itself is fine.
>
> Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Thanks,
Chunyan

>
> Thanks,
> Guenter
>
> > Fixes: 477603467009 ("watchdog: Add Spreadtrum watchdog driver")
> > Signed-off-by: Lingling Xu <ling_ling.xu@xxxxxxxxxx>
> > Signed-off-by: Chunyan Zhang <chunyan.zhang@xxxxxxxxxx>
> > ---
> > drivers/watchdog/sprd_wdt.c | 9 ++-------
> > 1 file changed, 2 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/watchdog/sprd_wdt.c b/drivers/watchdog/sprd_wdt.c
> > index 65cb55f3916f..f3c90b4afead 100644
> > --- a/drivers/watchdog/sprd_wdt.c
> > +++ b/drivers/watchdog/sprd_wdt.c
> > @@ -345,15 +345,10 @@ static int __maybe_unused sprd_wdt_pm_resume(struct device *dev)
> > if (ret)
> > return ret;
> >
> > - if (watchdog_active(&wdt->wdd)) {
> > + if (watchdog_active(&wdt->wdd))
> > ret = sprd_wdt_start(&wdt->wdd);
> > - if (ret) {
> > - sprd_wdt_disable(wdt);
> > - return ret;
> > - }
> > - }
> >
> > - return 0;
> > + return ret;
> > }
> >
> > static const struct dev_pm_ops sprd_wdt_pm_ops = {
> >
>