- Oct 29, 2010
-
-
David Daney authored
The creation of the I/O clock domain requires some adjustments. Since the watchdog counters are clocked by the I/O clock, use its rate for timing calculations. Signed-off-by:
David Daney <ddaney@caviumnetworks.com> Cc: Wim Van Sebroeck <wim@iguana.be> Cc: linux-watchdog@vger.kernel.org Patchwork: http://patchwork.linux-mips.org/patch/1659/ Acked-by:
Wim Van Sebroeck <wim@iguana.be> Signed-off-by:
Ralf Baechle <ralf@linux-mips.org>
-
- Oct 28, 2010
-
-
Prarit Bhargava authored
The iTCO_wdt driver erroneously releases the pci_dev, and causes PCI hotremove to fail because of an incorrect usage count. The probe for this driver does a for_each_pci_dev() which gets a reference for a pci_dev when iTCO_wdt_init() is successful. The for_each_pci_dev() loop puts a reference for a pci_dev when iTCO_wdt_init() fails, so the iTCO_wdt_init() does not need to do any pci_dev_put()'s. The only pci_dev_put() that is required is in the iTCO_wdt_cleanup() function. Signed-off-by:
Prarit Bhargava <prarit@redhat.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Florian Fainelli authored
This patch adds support for the Broadcom BCM63xx SoC built-in watchdog, it uses one of the BCM63xx hardware timer id. Signed-off-by:
Miguel Gaio <miguel.gaio@efixo.com> Signed-off-by:
Florian Fainelli <florian@openwrt.org> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Giel van Schijndel authored
Signed-off-by:
Giel van Schijndel <me@mortis.eu> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Nicolas Kaiser authored
Fix debug macro line wrapping. Signed-off-by:
Nicolas Kaiser <nikai@nikai.net> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Timo Juhani Lindfors authored
On iEi PCISA-9652-R10 (BIOS version 1.5) single board computer reads from the game port do not seem to reset the watchdog timer. This patch adds a module parameter wdt_config_reg to specify alternative reset sources. At least WDT_RESET_KBD has been tested, even just running while true; do setleds -L +scroll sleep 1 setleds -L -scroll sleep 1 done is enough to keep the watchdog happy. Signed-off-by:
Timo Juhani Lindfors <timo.lindfors@iki.fi> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Timo Juhani Lindfors authored
Signed-off-by:
Timo Juhani Lindfors <timo.lindfors@iki.fi> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Ondrej Zajicek authored
This patch adds support for watchdogs with 8b timers, like ones in IT8702F and older revisions of IT8712F Super IO chip, to it87_wdt driver. This patch should be used after the patch 'it87_wdt: Add support for IT8720F watchdog'. Signed-off-by:
Ondrej Zajicek <santiago@crfreenet.org> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org>
-
Ondrej Zajicek authored
This simple patch adds support for a watchdog in IT8720F Super IO chip to it87_wdt driver. Signed-off-by:
Ondrej Zajicek <santiago@crfreenet.org> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org>
-
Joe Perches authored
Signed-off-by:
Joe Perches <joe@perches.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Prarit Bhargava authored
The current iTCO_wdt driver warnings are confusing. Currently when the device driver returns an error the console contains: iTCO_vendor_support: vendor-support=0 iTCO_wdt: Intel TCO WatchDog Timer Driver v1.05 iTCO_wdt: failed to reset NO_REBOOT flag, reboot disabled by hardware iTCO_wdt: No card detected After the patch, iTCO_vendor_support: vendor-support=0 iTCO_wdt: Intel TCO WatchDog Timer Driver v1.05 iTCO_wdt: failed to reset NO_REBOOT flag, device disabled by hardware/BIOS Clean this up and use the word "device" to describe the device. Signed-off-by:
Prarit Bhargava <prarit@redhat.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Seth Heasley authored
This patch adds the Intel Patsburg (PCH) DeviceIDs for iTCO Watchdog. Signed-off-by:
Seth Heasley <seth.heasley@intel.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
- Oct 15, 2010
-
-
Arnd Bergmann authored
All file_operations should get a .llseek operation so we can make nonseekable_open the default for future file operations without a .llseek pointer. The three cases that we can automatically detect are no_llseek, seq_lseek and default_llseek. For cases where we can we can automatically prove that the file offset is always ignored, we use noop_llseek, which maintains the current behavior of not returning an error from a seek. New drivers should normally not use noop_llseek but instead use no_llseek and call nonseekable_open at open time. Existing drivers can be converted to do the same when the maintainer knows for certain that no user code relies on calling seek on the device file. The generated code is often incorrectly indented and right now contains comments that clarify for each added line why a specific variant was chosen. In the version that gets submitted upstream, the comments will be gone and I will manually fix the indentation, because there does not seem to be a way to do that using coccinelle. Some amount of new code is currently sitting in linux-next that should get the same modifications, which I will do at the end of the merge window. Many thanks to Julia Lawall for helping me learn to write a semantic patch that does all this. ===== begin semantic patch ===== // This adds an llseek= method to all file operations, // as a preparation for making no_llseek the default. // // The rules are // - use no_llseek explicitly if we do nonseekable_open // - use seq_lseek for sequential files // - use default_llseek if we know we access f_pos // - use noop_llseek if we know we don't access f_pos, // but we still want to allow users to call lseek // @ open1 exists @ identifier nested_open; @@ nested_open(...) { <+... nonseekable_open(...) ...+> } @ open exists@ identifier open_f; identifier i, f; identifier open1.nested_open; @@ int open_f(struct inode *i, struct file *f) { <+... ( nonseekable_open(...) | nested_open(...) ) ...+> } @ read disable optional_qualifier exists @ identifier read_f; identifier f, p, s, off; type ssize_t, size_t, loff_t; expression E; identifier func; @@ ssize_t read_f(struct file *f, char *p, size_t s, loff_t *off) { <+... ( *off = E | *off += E | func(..., off, ...) | E = *off ) ...+> } @ read_no_fpos disable optional_qualifier exists @ identifier read_f; identifier f, p, s, off; type ssize_t, size_t, loff_t; @@ ssize_t read_f(struct file *f, char *p, size_t s, loff_t *off) { ... when != off } @ write @ identifier write_f; identifier f, p, s, off; type ssize_t, size_t, loff_t; expression E; identifier func; @@ ssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off) { <+... ( *off = E | *off += E | func(..., off, ...) | E = *off ) ...+> } @ write_no_fpos @ identifier write_f; identifier f, p, s, off; type ssize_t, size_t, loff_t; @@ ssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off) { ... when != off } @ fops0 @ identifier fops; @@ struct file_operations fops = { ... }; @ has_llseek depends on fops0 @ identifier fops0.fops; identifier llseek_f; @@ struct file_operations fops = { ... .llseek = llseek_f, ... }; @ has_read depends on fops0 @ identifier fops0.fops; identifier read_f; @@ struct file_operations fops = { ... .read = read_f, ... }; @ has_write depends on fops0 @ identifier fops0.fops; identifier write_f; @@ struct file_operations fops = { ... .write = write_f, ... }; @ has_open depends on fops0 @ identifier fops0.fops; identifier open_f; @@ struct file_operations fops = { ... .open = open_f, ... }; // use no_llseek if we call nonseekable_open //////////////////////////////////////////// @ nonseekable1 depends on !has_llseek && has_open @ identifier fops0.fops; identifier nso ~= "nonseekable_open"; @@ struct file_operations fops = { ... .open = nso, ... +.llseek = no_llseek, /* nonseekable */ }; @ nonseekable2 depends on !has_llseek @ identifier fops0.fops; identifier open.open_f; @@ struct file_operations fops = { ... .open = open_f, ... +.llseek = no_llseek, /* open uses nonseekable */ }; // use seq_lseek for sequential files ///////////////////////////////////// @ seq depends on !has_llseek @ identifier fops0.fops; identifier sr ~= "seq_read"; @@ struct file_operations fops = { ... .read = sr, ... +.llseek = seq_lseek, /* we have seq_read */ }; // use default_llseek if there is a readdir /////////////////////////////////////////// @ fops1 depends on !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier readdir_e; @@ // any other fop is used that changes pos struct file_operations fops = { ... .readdir = readdir_e, ... +.llseek = default_llseek, /* readdir is present */ }; // use default_llseek if at least one of read/write touches f_pos ///////////////////////////////////////////////////////////////// @ fops2 depends on !fops1 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier read.read_f; @@ // read fops use offset struct file_operations fops = { ... .read = read_f, ... +.llseek = default_llseek, /* read accesses f_pos */ }; @ fops3 depends on !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier write.write_f; @@ // write fops use offset struct file_operations fops = { ... .write = write_f, ... + .llseek = default_llseek, /* write accesses f_pos */ }; // Use noop_llseek if neither read nor write accesses f_pos /////////////////////////////////////////////////////////// @ fops4 depends on !fops1 && !fops2 && !fops3 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier read_no_fpos.read_f; identifier write_no_fpos.write_f; @@ // write fops use offset struct file_operations fops = { ... .write = write_f, .read = read_f, ... +.llseek = noop_llseek, /* read and write both use no f_pos */ }; @ depends on has_write && !has_read && !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier write_no_fpos.write_f; @@ struct file_operations fops = { ... .write = write_f, ... +.llseek = noop_llseek, /* write uses no f_pos */ }; @ depends on has_read && !has_write && !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier read_no_fpos.read_f; @@ struct file_operations fops = { ... .read = read_f, ... +.llseek = noop_llseek, /* read uses no f_pos */ }; @ depends on !has_read && !has_write && !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; @@ struct file_operations fops = { ... +.llseek = noop_llseek, /* no read or write fn */ }; ===== End semantic patch ===== Signed-off-by:
Arnd Bergmann <arnd@arndb.de> Cc: Julia Lawall <julia@diku.dk> Cc: Christoph Hellwig <hch@infradead.org>
-
- Oct 14, 2010
-
-
Timur Tabi authored
The PowerPC Book-E watchdog driver (booke_wdt.c) defines a default timeout value in the code based on whether it's a Freescale Book-E part of not. Instead of having hard-coded values in the driver, make it a Kconfig option. As newer chips gets faster, the current default values become less appropriate, since the timeout sometimes occurs before the kernel finishes booting. Making the value a Kconfig option allows BSPs to configure a new value without requiring the wdt_period command-line parameter to be set. Signed-off-by:
Timur Tabi <timur@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
- Oct 13, 2010
-
-
Timur Tabi authored
Register the __init and __exit functions in the PowerPC Book-E Watchdog driver as module entry/exit functions, and modify the Kconfig entry. Add a .release method for the PowerPC Book-E Watchdog driver, so that the watchdog is disabled when the driver is closed. Loosely based on original code from Jiang Yutang <b14898@freescale.com>. Signed-off-by:
Timur Tabi <timur@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
- Oct 07, 2010
-
-
David Howells authored
Add missing #inclusions of <linux/irq.h> to a whole bunch of files that should really include it. Note that this can replace #inclusions of <asm/irq.h>. This is required for the patch to sort out irqflags handling function naming to compile on MIPS. The problem is that these files require access to things like setup_irq() - which isn't available by #including <linux/interrupt.h> Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Ralf Baechle <ralf@linux-mips.org>
-
- Oct 05, 2010
-
-
Arnd Bergmann authored
All these files use the big kernel lock in a trivial way to serialize their private file operations, typically resulting from an earlier semi-automatic pushdown from VFS. None of these drivers appears to want to lock against other code, and they all use the BKL as the top-level lock in their file operations, meaning that there is no lock-order inversion problem. Consequently, we can remove the BKL completely, replacing it with a per-file mutex in every case. Using a scripted approach means we can avoid typos. These drivers do not seem to be under active maintainance from my brief investigation. Apologies to those maintainers that I have missed. file=$1 name=$2 if grep -q lock_kernel ${file} ; then if grep -q 'include.*linux.mutex.h' ${file} ; then sed -i '/include.*<linux\/smp_lock.h>/d' ${file} else sed -i 's/include.*<linux\/smp_lock.h>.*$/include <linux\/mutex.h>/g' ${file} fi sed -i ${file} \ -e "/^#include.*linux.mutex.h/,$ { 1,/^\(static\|int\|long\)/ { /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex); } }" \ -e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \ -e '/[ ]*cycle_kernel_lock();/d' else sed -i -e '/include.*\<smp_lock.h\>/d' ${file} \ -e '/cycle_kernel_lock()/d' fi Signed-off-by:
Arnd Bergmann <arnd@arndb.de>
-
- Sep 29, 2010
-
-
Varadarajan, Charulatha authored
Call runtime pm APIs pm_runtime_put_sync() and pm_runtime_get_sync() for enabling/disabling the clocks, sysconfig settings instead of using clock FW APIs. Signed-off-by:
Charulatha V <charu@ti.com> Acked-by:
Cousson, Benoit <b-cousson@ti.com> Acked-by:
Wim Van Sebroeck <wim@iguana.be> Signed-off-by:
Kevin Hilman <khilman@deeprootsystems.com>
-
- Sep 15, 2010
-
-
Kevin Wells authored
The NXP LPC32XX processor use the same watchdog as the Philips PNX4008 processor. Signed-off-by:
Kevin Wells <wellsk40@gmail.com> Tested-by:
Wolfram Sang <w.sang@pengutronix.de> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Mika Westerberg authored
Since it may be already enabled by bootloader or some other utility. This patch makes sure that the watchdog is disabled before any userspace daemon opens the device. It is also required by the watchdog API. Signed-off-by:
Mika Westerberg <mika.westerberg@iki.fi> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Akinobu Mita authored
irq and reboot notifier are acquired in module_init() but never released. They should be released correctly, otherwise reloading the module or error during module_init() will cause a problem. Signed-off-by:
Akinobu Mita <akinobu.mita@gmail.com> Cc: Andrew Sharp <andy.sharp@lsi.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
- Aug 13, 2010
-
-
dann frazier authored
hpwdt is quite functional without the NMI decoding feature. This change lets users disable the NMI portion at compile-time via the new HPWDT_NMI_DECODING config option. Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
Move NMI-decoding initialisation and exit code to seperate functions so that we can ifdef-out parts of it in the future. Also, this is for a device, so let's use dev_info instead of printk. Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
The term "decoding" more clearly explains what hpwdt is doing. It isn't just finding the source of the interrupt, but rather aids in decoding what the interrupt means. Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
Reorganize this function to remove excess indentation and highlight the single return code. (No functional change). Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
Let applications check the amount of time left before the watchdog will fire. Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
The hpwdt timer is a 16 bit value with 128ms resolution. Let applications use this entire range. Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
Define a macro to convert from seconds to timer ticks. Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
The 32-bit assembly is guarded by an #ifndef CONFIG_X86_64. Kconfig prevents us from building this driver on !X86, so that happens to suffice - but we should really lock it down to #ifdef CONFIG_X86_32. Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
This driver supports both iLO2 and iLO3, but our user-visible strings currently only reference iLO2. Let's just call it "iLO2+" to avoid having to update strings for each iLO generation. This driver doesn't support iLO ASICs prior to iLO2, but that is sufficiently explained in Kconfig. Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
* Group together includes specific to NMI sourcing * Group defines only used by NMI sourcing together * Group declarations specific to NMI sourcing together This gives a clean seperation of watchdog specific items and NMI sourcing specific items (which is needed for making it possible to build hpwdt without the NMI functionality). Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
Reorganization only. Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
dann frazier authored
* remove unnecessary includes * We use a spinlock, but lacked the include * We need bitops.h for test_and_set_bit/clear_bit Signed-off-by:
dann frazier <dannf@hp.com> Acked-by:
Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
- Aug 08, 2010
-
-
Kulikov Vasiliy authored
Use %p instead of %08x in printk(). Signed-off-by:
Kulikov Vasiliy <segooon@gmail.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Viresh Kumar authored
Technical Reference Manual can be found at: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0270b/DDI0270.pdf Signed-off-by:
Viresh Kumar <viresh.kumar@st.com> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Giel van Schijndel authored
Add a new watchdog driver for the Fintek F71808E and F71882FG Super I/O controllers. Signed-off-by:
Giel van Schijndel <me@mortis.eu> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Wim Van Sebroeck authored
Set the paranet of the misc_device before we register the misc_device. Reported-by:
Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by:
Wim Van sebroeck <wim@iguana.be>
-
H Hartley Sweeten authored
Move the VENDOR/DEVICE ids to pci_ids.h. Signed-off-by:
H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
Wim Van Sebroeck authored
When removing the watchdog platform device, we need to disable the access to userspace first. It makes no sense to remove the drivers clock, irq's, ... and then disable userspace access. the order of removal has also been changed so that it is the reverse of probing (this way the clock is also disabled sooner). Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by:
Wim Van Sebroeck <wim@iguana.be>
-
- Aug 06, 2010
-
-
Grant Likely authored
of_device is just an alias for platform_device, so remove it entirely. Also replace to_of_device() with to_platform_device() and update comment blocks. This patch was initially generated from the following semantic patch, and then edited by hand to pick up the bits that coccinelle didn't catch. @@ @@ -struct of_device +struct platform_device Signed-off-by:
Grant Likely <grant.likely@secretlab.ca> Reviewed-by:
David S. Miller <davem@davemloft.net>
-