瀏覽代碼

watchdog: w83627hf: Enable watchdog device only if not already enabled

There is no need to enable the watchdog device if it is already enabled.
Also, when enabling the watchdog device, only set the watchdog device
enable bit and do not touch other bits; depending on the chip type,
those bits may enable other functionality.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Guenter Roeck 12 年之前
父節點
當前提交
ac461103c5
共有 1 個文件被更改,包括 3 次插入1 次删除
  1. 3 1
      drivers/watchdog/w83627hf_wdt.c

+ 3 - 1
drivers/watchdog/w83627hf_wdt.c

@@ -107,7 +107,9 @@ static void w83627hf_init(struct watchdog_device *wdog)
 	}
 	}
 
 
 	outb_p(0x30, WDT_EFER); /* select CR30 */
 	outb_p(0x30, WDT_EFER); /* select CR30 */
-	outb_p(0x01, WDT_EFDR); /* set bit 0 to activate GPIO2 */
+	t = inb(WDT_EFDR);
+	if (!(t & 0x01))
+		outb_p(t | 0x01, WDT_EFDR); /* set bit 0 to activate GPIO2 */
 
 
 	outb_p(0xF6, WDT_EFER); /* Select CRF6 */
 	outb_p(0xF6, WDT_EFER); /* Select CRF6 */
 	t = inb_p(WDT_EFDR);      /* read CRF6 */
 	t = inb_p(WDT_EFDR);      /* read CRF6 */