From: ziv.xu Date: Thu, 9 Feb 2023 13:49:17 +0000 (+0800) Subject: starfive-wdt: add reset before resume X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0552f2008cff06f041d5e914d092b4931d103da4;p=platform%2Fkernel%2Flinux-starfive.git starfive-wdt: add reset before resume add reset before resume Signed-off-by: ziv.xu --- diff --git a/drivers/watchdog/starfive-wdt.c b/drivers/watchdog/starfive-wdt.c index d316767fcaf5..90765f99d43f 100644 --- a/drivers/watchdog/starfive-wdt.c +++ b/drivers/watchdog/starfive-wdt.c @@ -820,18 +820,21 @@ static int starfive_wdt_resume(struct device *dev) struct starfive_wdt *wdt = dev_get_drvdata(dev); starfive_wdt_unlock(wdt); + pm_runtime_force_resume(dev); + + ret = reset_control_deassert(wdt->rsts); + if (ret) + dev_err(wdt->dev, "deassert rsts error.\n"); /* Restore watchdog state. */ starfive_wdt_set_relod_count(wdt, wdt->reload); - pm_runtime_force_resume(dev); - - starfive_wdt_restart(&wdt->wdt_device, 0, NULL); - ret = starfive_wdt_mask_and_disable_reset(wdt, false); if (ret < 0) return ret; + starfive_wdt_restart(&wdt->wdt_device, 0, NULL); + starfive_wdt_lock(wdt); return 0;