Re: [PATCH v2] watchdog: w83627hf_wdt: add bootstatus support

From: Henning Schild
Date: Fri Oct 07 2022 - 12:34:24 EST


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();
> >
>