Am Fri, 7 Oct 2022 08:51:05 -0700 schrieb Guenter Roeck <linux@xxxxxxxxxxxx>: > On 10/7/22 08:36, Henning Schild wrote: > > Ping. > > > > The patch is queued in my watchdog-next branch. We'll see > if Wim will pick it up in his pull request for 6.1. If not, > try again after the commit window closes. Thanks for the update. regards, Henning > Guenter > > > Henning > > > > Am Wed, 24 Aug 2022 17:24:48 +0200 > > schrieb Henning Schild <henning.schild@xxxxxxxxxxx>: > > > >> The status bit in the status and control register can tell us > >> whether the last reboot was caused by the watchdog. Make sure to > >> take that into the bootstatus before clearing it. > >> > >> Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx> > >> Signed-off-by: Henning Schild <henning.schild@xxxxxxxxxxx> > >> --- > >> drivers/watchdog/w83627hf_wdt.c | 12 ++++++++++-- > >> 1 file changed, 10 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/watchdog/w83627hf_wdt.c > >> b/drivers/watchdog/w83627hf_wdt.c index 56a4a4030ca9..bc33b63c5a5d > >> 100644 --- a/drivers/watchdog/w83627hf_wdt.c > >> +++ b/drivers/watchdog/w83627hf_wdt.c > >> @@ -113,6 +113,10 @@ MODULE_PARM_DESC(early_disable, "Disable > >> watchdog at boot time (default=0)"); #define W836X7HF_WDT_CSR > >> 0xf7 #define NCT6102D_WDT_CSR 0xf2 > >> > >> +#define WDT_CSR_STATUS 0x10 > >> +#define WDT_CSR_KBD 0x40 > >> +#define WDT_CSR_MOUSE 0x80 > >> + > >> static void superio_outb(int reg, int val) > >> { > >> outb(reg, WDT_EFER); > >> @@ -244,8 +248,12 @@ static int w83627hf_init(struct > >> watchdog_device *wdog, enum chips chip) t = > >> superio_inb(cr_wdt_control) & ~0x0C; superio_outb(cr_wdt_control, > >> t); > >> - /* reset trigger, disable keyboard & mouse turning off > >> watchdog */ > >> - t = superio_inb(cr_wdt_csr) & ~0xD0; > >> + t = superio_inb(cr_wdt_csr); > >> + if (t & WDT_CSR_STATUS) > >> + wdog->bootstatus |= WDIOF_CARDRESET; > >> + > >> + /* reset status, disable keyboard & mouse turning off > >> watchdog */ > >> + t &= ~(WDT_CSR_STATUS | WDT_CSR_KBD | WDT_CSR_MOUSE); > >> superio_outb(cr_wdt_csr, t); > >> > >> superio_exit(); > > >