summaryrefslogtreecommitdiff
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2013-08-17 20:58:41 (GMT)
committerWim Van Sebroeck <wim@iguana.be>2013-11-18 20:34:13 (GMT)
commitac461103c57ac46cd6778f1fd0352ff0e4a2d38e (patch)
tree720b6be69743d35460470f9eca953c0531755e02 /drivers/watchdog
parent8f526389599fc543b204c12a36de8345eb298085 (diff)
downloadlinux-fsl-qoriq-ac461103c57ac46cd6778f1fd0352ff0e4a2d38e.tar.xz
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>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/w83627hf_wdt.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/watchdog/w83627hf_wdt.c b/drivers/watchdog/w83627hf_wdt.c
index 910d437..c5d34f4 100644
--- a/drivers/watchdog/w83627hf_wdt.c
+++ b/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(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 */
t = inb_p(WDT_EFDR); /* read CRF6 */