On 4/9/21 7:42 PM, 王擎 wrote: > >> On 4/9/21 2:55 AM, Wang Qing wrote: >>> Use the bark interrupt as the pretimeout notifier if available. >>> >>> By default, the pretimeout notification shall occur one second earlier >>> than the timeout. >>> >>> Signed-off-by: Wang Qing <wangqing@xxxxxxxx> >>> --- >>> drivers/watchdog/mtk_wdt.c | 47 +++++++++++++++++++++++++++++++++++++++++++--- >>> 1 file changed, 44 insertions(+), 3 deletions(-) >>> >>> diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c >>> index 97ca993..8b919cc >>> --- a/drivers/watchdog/mtk_wdt.c >>> +++ b/drivers/watchdog/mtk_wdt.c >>> @@ -25,6 +25,7 @@ >>> #include <linux/reset-controller.h> >>> #include <linux/types.h> >>> #include <linux/watchdog.h> >>> +#include <linux/interrupt.h> >>> >>> #define WDT_MAX_TIMEOUT 31 >>> #define WDT_MIN_TIMEOUT 1 >>> @@ -234,18 +235,35 @@ static int mtk_wdt_start(struct watchdog_device *wdt_dev) >>> void __iomem *wdt_base = mtk_wdt->wdt_base; >>> int ret; >>> >>> - ret = mtk_wdt_set_timeout(wdt_dev, wdt_dev->timeout); >>> + ret = mtk_wdt_set_timeout(wdt_dev, wdt_dev->timeout - wdt_dev->pretimeout); >> >> That looks suspiciously like the real watchdog won't happen at all. >> What will happen if the pretimeout governor is set to none ? >> >> Guenter >> > The pretimeout governor is panic by default. If pretimeout is enabled and the governor is > set to none, it means the timeout behavior does not need to be processed, only printing. > That was not my question. My question was if the real timeout happens in that case. Guenter