Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 93642ecd authored by P@Draig Brady's avatar P@Draig Brady Committed by Wim Van Sebroeck
Browse files

[WATCHDOG] w83627hf_wdt.c-initialized_bios_bug



Attached is a small update to the w83627hf watchdog driver
to initialise appropriately if it was already initialised
in the BIOS. On tyan motherboards for e.g. you can init
the watchdog to 4 mins, then when the driver is loaded it
sets the watchdog to "seconds" mode, and then machine will
reboot within 4 seconds. So this patch resets the timeout
to the configured value if the watchdog is already running.

Signed-off-by: default avatarP@draig Brady <P@draigBrady.com>
Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
parent 94f1e9f3
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -93,6 +93,12 @@ w83627hf_init(void)


	w83627hf_select_wd_register();
	w83627hf_select_wd_register();


	outb_p(0xF6, WDT_EFER); /* Select CRF6 */
	t=inb_p(WDT_EFDR);      /* read CRF6 */
	if (t != 0) {
		printk (KERN_INFO PFX "Watchdog already running. Resetting timeout to %d sec\n", timeout);
		outb_p(timeout, WDT_EFDR);    /* Write back to CRF6 */
	}
	outb_p(0xF5, WDT_EFER); /* Select CRF5 */
	outb_p(0xF5, WDT_EFER); /* Select CRF5 */
	t=inb_p(WDT_EFDR);      /* read CRF5 */
	t=inb_p(WDT_EFDR);      /* read CRF5 */
	t&=~0x0C;               /* set second mode & disable keyboard turning off watchdog */
	t&=~0x0C;               /* set second mode & disable keyboard turning off watchdog */