Commit 2d9d6d30 authored by Jonas Blixt's avatar Jonas Blixt Committed by Wim Van Sebroeck

watchdog: imx_sc_wdt: Don't disable WDT in suspend

Parts of the suspend and resume chain is left unprotected if we disable
the WDT here.

>From experiments we can see that the SCU disables and re-enables the WDT
when we enter and leave suspend to ram. By not touching the WDT here we
are protected by the WDT all the way to the SCU.
Signed-off-by: default avatarJonas Blixt <jonas.blixt@actia.se>
CC: Anson Huang <anson.huang@nxp.com>
Fixes: 986857ac ("watchdog: imx_sc: Add i.MX system controller watchdog support")
Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240801121845.1465765-1-jonas.blixt@actia.seSigned-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarWim Van Sebroeck <wim@linux-watchdog.org>
parent 1f87c578
...@@ -216,29 +216,6 @@ static int imx_sc_wdt_probe(struct platform_device *pdev) ...@@ -216,29 +216,6 @@ static int imx_sc_wdt_probe(struct platform_device *pdev)
return devm_watchdog_register_device(dev, wdog); return devm_watchdog_register_device(dev, wdog);
} }
static int __maybe_unused imx_sc_wdt_suspend(struct device *dev)
{
struct imx_sc_wdt_device *imx_sc_wdd = dev_get_drvdata(dev);
if (watchdog_active(&imx_sc_wdd->wdd))
imx_sc_wdt_stop(&imx_sc_wdd->wdd);
return 0;
}
static int __maybe_unused imx_sc_wdt_resume(struct device *dev)
{
struct imx_sc_wdt_device *imx_sc_wdd = dev_get_drvdata(dev);
if (watchdog_active(&imx_sc_wdd->wdd))
imx_sc_wdt_start(&imx_sc_wdd->wdd);
return 0;
}
static SIMPLE_DEV_PM_OPS(imx_sc_wdt_pm_ops,
imx_sc_wdt_suspend, imx_sc_wdt_resume);
static const struct of_device_id imx_sc_wdt_dt_ids[] = { static const struct of_device_id imx_sc_wdt_dt_ids[] = {
{ .compatible = "fsl,imx-sc-wdt", }, { .compatible = "fsl,imx-sc-wdt", },
{ /* sentinel */ } { /* sentinel */ }
...@@ -250,7 +227,6 @@ static struct platform_driver imx_sc_wdt_driver = { ...@@ -250,7 +227,6 @@ static struct platform_driver imx_sc_wdt_driver = {
.driver = { .driver = {
.name = "imx-sc-wdt", .name = "imx-sc-wdt",
.of_match_table = imx_sc_wdt_dt_ids, .of_match_table = imx_sc_wdt_dt_ids,
.pm = &imx_sc_wdt_pm_ops,
}, },
}; };
module_platform_driver(imx_sc_wdt_driver); module_platform_driver(imx_sc_wdt_driver);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment