20 Sep, 2011
4 commits
-
Signed-off-by: Andi Kleen
Signed-off-by: Wim Van Sebroeck -
The enable function was using the global timeout variable for local operations.
This resulted in the value of the global variable being corrupted, thus
breaking the code.Signed-off-by: John Crispin
Signed-off-by: Thomas Langer
Signed-off-by: Wim Van Sebroeck
Cc: linux-watchdog@vger.kernel.org
Cc: linux-mips@linux-mips.org -
On platforms with no iCRU support don't print two, (possibly conflicting),
"NMI occurred" messages when the firmware is unable to source the NMI.Please note that one of the enhancements to the v1.3.0 hpwdt driver is to panic and allow
KDUMP to succeed even on NMIs that are unknown to the platform firmware.Signed-off-by: Naga Chumbalkar
Reviewed-by: Thomas Mingarelli
Signed-off-by: Wim Van Sebroeck -
Use the passed watchdog_device instead of the static global variable when
testing and setting the status in watchdog_ping, watchdog_start, and
watchdog_stop. Note that the callers of these functions are actually
passing the static global variable.Signed-off-by: H Hartley Sweeten
Signed-off-by: Wim Van Sebroeck
02 Aug, 2011
3 commits
-
The newly added WATCHDOG_CORE option is a bool, but the help text suggests
it can be built as a module. Fix it up.Signed-off-by: Josh Boyer
Signed-off-by: Wim Van Sebroeck -
At present the module does not unset the NO_REBOOT bit upon shutdown, this
causes the BIOS to fail the POST once and reset. During the next boot it
displays the following error message:***** Warning: System BOOT Fail *****
Your system last boot fail or POST interrupted.
Please enter setup to load default and reboot again.
Press F1 to continue, DEL to enter SETUPWith this patch the NO_REBOOT flag will be unset on shutdown and thus stop
this failure from occurring.Tested on 'ASUS P5N32-E SLI with BIOS revision 1801' and
'ASUS P5N32-E SLI PLUS with BIOS revision 1502'.Signed-off-by: Mart Gerrits
Signed-off-by: Wim Van Sebroeck -
Fix the usage of mod_timer() and make the driver usable. mod_timer() must
be called with an absolute timeout in jiffies. The old implementation
used a relative timeout thus the hardware watchdog was never triggered.Signed-off-by: David Engraf
Signed-off-by: Paul Mundt
Signed-off-by: Wim Van sebroeck
Signed-off-by: Andrew Morton
Cc: stable
30 Jul, 2011
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-watchdog: (25 commits)
watchdog: WatchDog Timer Driver Core - Add minimum and max timeout
watchdog: WatchDog Timer Driver Core - Add ioctl call
watchdog: WatchDog Timer Driver Core - Add nowayout feature
watchdog: WatchDog Timer Driver Core - Add Magic Close feature
watchdog: WatchDog Timer Driver Core - Add WDIOC_SETTIMEOUT and WDIOC_GETTIMEOUT ioctl
watchdog: WatchDog Timer Driver Core - Add WDIOC_SETOPTIONS ioctl
watchdog: WatchDog Timer Driver Core - Add WDIOC_KEEPALIVE ioctl
watchdog: WatchDog Timer Driver Core - Add basic ioctl functionality
watchdog: WatchDog Timer Driver Core - Add basic framework
watchdog: hpwdt: add next gen HP servers
watchdog: it8712f_wdt.c: improve includes
watchdog: at91sam9/wdt: move register header to drivers
watchdog: Add Xilinx watchdog timer driver
watchdog: remove empty pm-functions
watchdog: sp805: Flush posted writes in enable/disable.
watchdog: sp805: Don't write 0 to the load value register.
watchdog: imx2_wdt: add device tree probe support
watchdog: s3c2410: Add support for device tree based probe
watchdog: mpcore_wdt: Add suspend/resume support.
watchdog: mtx1-wdt: use dev_{err,info} instead of printk()
...
28 Jul, 2011
10 commits
-
Add min_timeout (minimum timeout) and max_timeout
values so that the framework can check if the new
timeout value is between the minimum and maximum
timeout values. If both values are 0, then the
framework will leave the check for the watchdog
device driver itself.Signed-off-by: Alan Cox
Signed-off-by: Wim Van Sebroeck
Acked-by: Arnd Bergmann
Acked-by: Wolfram Sang -
Add support for extra ioctl calls by adding a
ioctl watchdog operation. This operation will be
called before we do our own handling of ioctl
commands. This way we can override the internal
ioctl command handling and we can also add
extra ioctl commands. The ioctl watchdog operation
should return the appropriate error codes or
-ENOIOCTLCMD if the ioctl command should be handled
through the internal ioctl handling of the framework.Signed-off-by: Alan Cox
Signed-off-by: Wim Van Sebroeck
Acked-by: Arnd Bergmann
Acked-by: Wolfram Sang -
Add support for the nowayout feature to the
WatchDog Timer Driver Core framework.
This feature prevents the watchdog timer from being
stopped.Signed-off-by: Alan Cox
Signed-off-by: Wim Van Sebroeck
Acked-by: Arnd Bergmann
Acked-by: Wolfram Sang -
Add support for the Magic Close feature to the
WatchDog Timer Driver Core framework.Signed-off-by: Alan Cox
Signed-off-by: Wim Van Sebroeck
Acked-by: Arnd Bergmann
Acked-by: Wolfram Sang -
This part add's the WDIOC_SETTIMEOUT and WDIOC_GETTIMEOUT ioctl
functionality to the WatchDog Timer Driver Core framework.Signed-off-by: Alan Cox
Signed-off-by: Wim Van Sebroeck
Acked-by: Arnd Bergmann
Acked-by: Wolfram Sang -
This part add's the WDIOC_SETOPTIONS ioctl functionality
to the WatchDog Timer Driver Core framework.Signed-off-by: Alan Cox
Signed-off-by: Wim Van Sebroeck
Acked-by: Arnd Bergmann
Acked-by: Wolfram Sang -
This part add's the WDIOC_KEEPALIVE ioctl functionality to the
WatchDog Timer Driver Core framework. Please note that the
WDIOF_KEEPALIVEPING bit has to be set in the watchdog_info
options field.Signed-off-by: Alan Cox
Signed-off-by: Wim Van Sebroeck
Acked-by: Arnd Bergmann
Acked-by: Wolfram Sang -
This part add's the basic ioctl functionality to the
WatchDog Timer Driver Core framework. The supported
ioctl call's are:
WDIOC_GETSUPPORT
WDIOC_GETSTATUS
WDIOC_GETBOOTSTATUSSigned-off-by: Alan Cox
Signed-off-by: Wim Van Sebroeck
Acked-by: Arnd Bergmann
Acked-by: Wolfram Sang -
The WatchDog Timer Driver Core is a framework
that contains the common code for all watchdog-driver's.
It also introduces a watchdog device structure and the
operations that go with it.This is the introduction of this framework. This part
supports the minimal watchdog userspace API (or with
other words: the functionality to use /dev/watchdog's
open, release and write functionality as defined in
the simplest watchdog API). Extra functionality will
follow in the next set of patches.Signed-off-by: Alan Cox
Signed-off-by: Wim Van Sebroeck
Acked-by: Arnd Bergmann
Acked-by: Wolfram Sang -
This patch is required to enable hpwdt to work on next generation HP servers
with iLO.Signed-off-by: Thomas Mingarelli
Signed-off-by: Wim Van Sebroeck
27 Jul, 2011
8 commits
-
This allows us to move duplicated code in
(atomic_inc_not_zero() for now) toSigned-off-by: Arun Sharma
Reviewed-by: Eric Dumazet
Cc: Ingo Molnar
Cc: David Miller
Cc: Eric Dumazet
Acked-by: Mike Frysinger
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
remove unneeded pci.h include.
and include ioport.h to avoid build errors for the region functions.Reported-by: Randy Dunlap
Signed-off-by: Wim Van Sebroeck -
move register header to drivers
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
Cc: Nicolas Ferre
Signed-off-by: Wim Van Sebroeck -
Watchdog timer device driver for Xilinx xps_timebase_wdt compatible ip cores.
It takes watchdog timer configuration from device tree and it needs that its
parent has defined the property "clock-frecuency".
It is compatible with watchdog timer kernel API, so user apps like watchdogd
may talk with it.Signed-off-by: Alejandro Cabrera
Signed-off-by: Wim Van Sebroeck -
While checking what watchdog drivers usually do in suspend/resume to
spot common behaviour for the watchdog framework, I found these drivers
which do nothing but add some cruft. Remove it, it is superfluous. New
approaches should probably be done with pm_ops anyway.Signed-off-by: Wolfram Sang
Signed-off-by: Wim Van Sebroeck -
There are no reads in these functions, so if MMIO writes are posted,
the writes in enable/disable may not have completed by the time these
functions return. If the functions run from different CPUs, it's
in theory possible for the writes to be interleaved, which would be
disastrous for this driver.At the very least, we need an mmiowb() before releasing the lock, but
since it seems desirable for the watchdog timer to be actually stopped
or reset when these functions return, read the lock register to force
the writes out.Signed-off-by: Nick Bowler
Signed-off-by: Wim Van Sebroeck -
At least on the Versatile Express' V2M, calling wdt_disable followed by
wdt_enable, for instance by running the following sequence:echo V > /dev/watchdog; echo V > /dev/watchdog
results in an immediate reset. The wdt_disable function writes 0 to the
load register; while the watchdog interrupts are disabled at this point,
this special value is defined to trigger an interrupt immediately. It
appears that in this instance, the reset happens when the interrupts
are subsequently enabled by wdt_enable.Putting in a short delay after writing a new load value in wdt_enable
solves the issue, but it seems cleaner to simply never write 0 to the
load register at all: according to the hardware docs, writing 0 to the
control register suffices to stop the counter, and the write of 0 to
the load register is questionable anyway since this register resets to
0xffffffff.Signed-off-by: Nick Bowler
Signed-off-by: Wim Van Sebroeck -
Adds device tree probe support for imx2_wdt driver.
Signed-off-by: Shawn Guo
Cc: Grant Likely
Cc: Wolfram Sang
Signed-off-by: Wim Van Sebroeck
22 Jul, 2011
8 commits
-
This patch adds the of_match_table to enable s3c2410-wdt driver
to be probed when watchdog device node is found in the device tree.Signed-off-by: Thomas Abraham
Acked-by: Grant Likely
Signed-off-by: Wim Van Sebroeck -
Add support for suspend and resume to the MPCore watchdog driver.
Signed-off-by: Peter Fordham
Signed-off-by: Wim Van Sebroeck -
use dev_{err,info} instead of printk(KERN_{ERR,INFO} ...)
Signed-off-by: Florian Fainelli
Signed-off-by: Wim Van Sebroeck -
The i.MX architecture provides IMX_HAVE_PLATFORM_* macros to signal
that a selected SoC supports a certain hardware. Use them instead of
depending on ARCH_* directly.Signed-off-by: Sascha Hauer
Acked-by: Uwe Kleine-König
Signed-off-by: Wim Van Sebroeck
Cc: linux-watchdog@vger.kernel.org -
The Synopsys DesignWare watchdog is found in several ARM based systems
and provides a choice of 16 timeout periods depending on the clock
input. The watchdog cannot be disabled once started.Signed-off-by: Jamie Iles
Acked-by: Viresh Kumar
Signed-off-by: Wim Van Sebroeck -
Inspired by Nat Gurumoorthy's recent patches for cleaning up the it87
drivers to use request_muxed_region for accessing the SuperIO area on
these chips, and the fact I have a GPIO driver for the pc8741x basically
ready for submission, here is a patch to cleanup the pc87413 watchdog
driver to use request_muxed_region for accessing the SuperIO area.It also pulls out the details about the SWC IO area on initial driver
load, and properly does a request_region for that area - there's no
requirement to touch the SuperIO area after doing the initial watchdog
enable and IO base retrieval.While I have hardware with a pc87413 on it it is not wired in a way that
allows the watchdog to reboot the machine, so I have not been able to
fully test these changes - I have checked that the driver correctly
initialises itself still and requests the SWC io region ok.Signed-Off-By: Jonathan McDowell
Signed-Off-By: Wim Van Sebroeck -
Clean up of the iTCO_wdt PCI device ID's.
Own macro is replaced by the PCI_VDEVICE macro.Signed-off-by: Wim Van Sebroeck
-
Changes the it87 watchdog drivers to use "request_muxed_region".
Serialize access to the hardware by using "request_muxed_region" macro defined
by Alan Cox. Call to this macro will hold off the requestor if the resource is
currently busy.The use of the above macro makes it possible to get rid of
spinlocks in it8712f_wdt.c and it87_wdt.c watchdog drivers.
This also greatly simplifies the implementation of it87_wdt.c driver."superio_enter" will return an error if call to "request_muxed_region" fails.
Rest of the code change is to ripple an error return from superio_enter to
the top level.Signed-off-by: Nat Gurumoorthy
Signed-off-by: Wim Van Sebroeck
17 Jul, 2011
1 commit
-
hpwdt is a PCI driver so it should depend on PCI.
Fixes these build errors:drivers/watchdog/hpwdt.c:762: error: implicit declaration of function 'pci_iomap'
drivers/watchdog/hpwdt.c:762: warning: assignment makes pointer from integer without a cast
drivers/watchdog/hpwdt.c:797: error: implicit declaration of function 'pci_iounmap'Signed-off-by: Randy Dunlap
Signed-off-by: Wim Van Sebroeck
Cc: Thomas Mingarelli
16 Jul, 2011
1 commit
-
Remove Kconfig regression caused by commit
a4616153deae053b29a2b7dd9ec4b2a225accfc5 "watchdog: hpwdt: build hpwdt as
module by default with NMI_DECODING enabled"With the above change applied, hpwdt will be enabled unconditionally by just
entering the Watchdog subscreen in menuconfig. Since this driver is not
essential to boot any box it should remain disabled until it gets manually
enabled, just like all other drivers.Signed-off-by: Olaf Hering
Cc: Tony Camuso
Signed-off-by: Wim Van Sebroeck
Signed-off-by: Andrew Morton
29 Jun, 2011
1 commit
-
This patch updates the email address of the at32ap700x_wdt driver supported by
me to an email account I will use on a more regular basis in the future.Signed-off-by: Hans-Christian Egtvedt
Signed-off-by: Wim Van Sebroeck
28 Jun, 2011
3 commits
-
Remove the space between "platform:" prefix and the driver name.
Signed-off-by: Axel Lin
Acked-by: Martyn Welch
Signed-off-by: Wim Van Sebroeck -
Trying to build the Intel SCU Watchdog fails for me with gcc 4.6.0 -
$ gcc --version | head -n 1
gcc (GCC) 4.6.0 20110513 (prerelease)like this :
CC drivers/watchdog/intel_scu_watchdog.o
In file included from drivers/watchdog/intel_scu_watchdog.c:49:0:
/home/jj/src/linux-2.6/arch/x86/include/asm/apb_timer.h: In function ‘apbt_time_init’:
/home/jj/src/linux-2.6/arch/x86/include/asm/apb_timer.h:65:42: warning: ‘return’ with a value, in function returning void [enabled by default]
drivers/watchdog/intel_scu_watchdog.c: In function ‘intel_scu_watchdog_init’:
drivers/watchdog/intel_scu_watchdog.c:468:2: error: implicit declaration of function ‘sfi_get_mtmr’ [-Werror=implicit-function-declaration]
drivers/watchdog/intel_scu_watchdog.c:468:32: warning: assignment makes pointer from integer without a cast [enabled by default]
cc1: some warnings being treated as errorsmake[1]: *** [drivers/watchdog/intel_scu_watchdog.o] Error 1
make: *** [drivers/watchdog/intel_scu_watchdog.o] Error 2Additionally, linux/types.h is needlessly being included twice in
drivers/watchdog/intel_scu_watchdog.cSigned-off-by: Jesper Juhl
Signed-off-by: Wim Van Sebroeck -
Fix section mismatch and remove unused variable 'tmp'.
Signed-off-by: Florian Fainelli
Signed-off-by: Wim Van Sebroeck