Module Name: src
Committed By: martin
Date: Sun Jun 14 08:32:02 UTC 2015
Modified Files:
src/sys/arch/arm/allwinner: awin_wdt.c
Log Message:
Add disarm support
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/allwinner/awin_wdt.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/allwinner/awin_wdt.c
diff -u src/sys/arch/arm/allwinner/awin_wdt.c:1.8 src/sys/arch/arm/allwinner/awin_wdt.c:1.9
--- src/sys/arch/arm/allwinner/awin_wdt.c:1.8 Tue Jun 9 12:46:37 2015
+++ src/sys/arch/arm/allwinner/awin_wdt.c Sun Jun 14 08:32:02 2015
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: awin_wdt.c,v 1.8 2015/06/09 12:46:37 martin Exp $");
+__KERNEL_RCSID(1, "$NetBSD: awin_wdt.c,v 1.9 2015/06/14 08:32:02 martin Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -145,10 +145,12 @@ awin_wdt_setmode(struct sysmon_wdog *smw
}
if ((smw->smw_mode & WDOG_MODE_MASK) == WDOG_MODE_DISARMED) {
- /*
- * We can't disarm the watchdog.
- */
- return sc->sc_wdog_armed ? EBUSY : 0;
+ if (sc->sc_wdog_armed)
+ /* can not disarm pre-armed kernel mode wdog */
+ return EBUSY;
+
+ bus_space_write_4(sc->sc_bst, sc->sc_bsh, sc->sc_mode_reg, 0);
+ return 0;
}
if (sc->sc_wdog_armed && smw->smw_period == sc->sc_wdog_period) {