mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-04 04:04:19 +00:00
watchdog: imx7ulp_wdt: init wdog when it was active
Paired with suspend, we can only init wdog again when it was active and ping it once to avoid the watchdog timeout after it resumed. Signed-off-by: Jason Liu <jason.hui.liu@nxp.com> Signed-off-by: Alice Guo <alice.guo@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com> Reviewed-by: Jacky Bai <ping.bai@nxp.com> Tested-by: Jacky Bai <ping.bai@nxp.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20220825083256.14565-7-alice.guo@oss.nxp.com Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
This commit is contained in:
parent
c32b53f965
commit
cef6bc98d5
@ -136,13 +136,6 @@ static int imx7ulp_wdt_enable(struct watchdog_device *wdog, bool enable)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool imx7ulp_wdt_is_enabled(void __iomem *base)
|
||||
{
|
||||
u32 val = readl(base + WDOG_CS);
|
||||
|
||||
return val & WDOG_CS_EN;
|
||||
}
|
||||
|
||||
static int imx7ulp_wdt_ping(struct watchdog_device *wdog)
|
||||
{
|
||||
struct imx7ulp_wdt_device *wdt = watchdog_get_drvdata(wdog);
|
||||
@ -382,11 +375,11 @@ static int __maybe_unused imx7ulp_wdt_resume_noirq(struct device *dev)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (imx7ulp_wdt_is_enabled(imx7ulp_wdt->base))
|
||||
if (watchdog_active(&imx7ulp_wdt->wdd)) {
|
||||
imx7ulp_wdt_init(imx7ulp_wdt, timeout);
|
||||
|
||||
if (watchdog_active(&imx7ulp_wdt->wdd))
|
||||
imx7ulp_wdt_start(&imx7ulp_wdt->wdd);
|
||||
imx7ulp_wdt_ping(&imx7ulp_wdt->wdd);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user