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) {