Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog: [WATCHDOG] hpwdt - fix lower timeout limit [WATCHDOG] iTCO_wdt: TCO Watchdog patch for additional Intel Cougar Point DeviceIDs [WATCHDOG] doc: Fix use of WDIOC_SETOPTIONS ioctl. [WATCHDOG] doc: watchdog simple example: don't fail on fsync() [WATCHDOG] set max63xx driver as ARM only [WATCHDOG] powerpc: pika_wdt ident cannot be const
This commit is contained in:
commit
14e71e4fb9
|
@ -17,9 +17,6 @@ int main(void)
|
|||
ret = -1;
|
||||
break;
|
||||
}
|
||||
ret = fsync(fd);
|
||||
if (ret)
|
||||
break;
|
||||
sleep(10);
|
||||
}
|
||||
close(fd);
|
||||
|
|
|
@ -31,6 +31,8 @@ static void keep_alive(void)
|
|||
*/
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int flags;
|
||||
|
||||
fd = open("/dev/watchdog", O_WRONLY);
|
||||
|
||||
if (fd == -1) {
|
||||
|
@ -41,12 +43,14 @@ int main(int argc, char *argv[])
|
|||
|
||||
if (argc > 1) {
|
||||
if (!strncasecmp(argv[1], "-d", 2)) {
|
||||
ioctl(fd, WDIOC_SETOPTIONS, WDIOS_DISABLECARD);
|
||||
flags = WDIOS_DISABLECARD;
|
||||
ioctl(fd, WDIOC_SETOPTIONS, &flags);
|
||||
fprintf(stderr, "Watchdog card disabled.\n");
|
||||
fflush(stderr);
|
||||
exit(0);
|
||||
} else if (!strncasecmp(argv[1], "-e", 2)) {
|
||||
ioctl(fd, WDIOC_SETOPTIONS, WDIOS_ENABLECARD);
|
||||
flags = WDIOS_ENABLECARD;
|
||||
ioctl(fd, WDIOC_SETOPTIONS, &flags);
|
||||
fprintf(stderr, "Watchdog card enabled.\n");
|
||||
fflush(stderr);
|
||||
exit(0);
|
||||
|
|
|
@ -222,11 +222,10 @@ returned value is the temperature in degrees fahrenheit.
|
|||
ioctl(fd, WDIOC_GETTEMP, &temperature);
|
||||
|
||||
Finally the SETOPTIONS ioctl can be used to control some aspects of
|
||||
the cards operation; right now the pcwd driver is the only one
|
||||
supporting this ioctl.
|
||||
the cards operation.
|
||||
|
||||
int options = 0;
|
||||
ioctl(fd, WDIOC_SETOPTIONS, options);
|
||||
ioctl(fd, WDIOC_SETOPTIONS, &options);
|
||||
|
||||
The following options are available:
|
||||
|
||||
|
|
|
@ -55,11 +55,6 @@ config SOFT_WATCHDOG
|
|||
To compile this driver as a module, choose M here: the
|
||||
module will be called softdog.
|
||||
|
||||
config MAX63XX_WATCHDOG
|
||||
tristate "Max63xx watchdog"
|
||||
help
|
||||
Support for memory mapped max63{69,70,71,72,73,74} watchdog timer.
|
||||
|
||||
config WM831X_WATCHDOG
|
||||
tristate "WM831x watchdog"
|
||||
depends on MFD_WM831X
|
||||
|
@ -305,6 +300,12 @@ config TS72XX_WATCHDOG
|
|||
To compile this driver as a module, choose M here: the
|
||||
module will be called ts72xx_wdt.
|
||||
|
||||
config MAX63XX_WATCHDOG
|
||||
tristate "Max63xx watchdog"
|
||||
depends on ARM
|
||||
help
|
||||
Support for memory mapped max63{69,70,71,72,73,74} watchdog timer.
|
||||
|
||||
# AVR32 Architecture
|
||||
|
||||
config AT32AP700X_WDT
|
||||
|
|
|
@ -442,7 +442,7 @@ static void hpwdt_ping(void)
|
|||
static int hpwdt_change_timer(int new_margin)
|
||||
{
|
||||
/* Arbitrary, can't find the card's limits */
|
||||
if (new_margin < 30 || new_margin > 600) {
|
||||
if (new_margin < 5 || new_margin > 600) {
|
||||
printk(KERN_WARNING
|
||||
"hpwdt: New value passed in is invalid: %d seconds.\n",
|
||||
new_margin);
|
||||
|
|
|
@ -115,8 +115,37 @@ enum iTCO_chipsets {
|
|||
TCO_3420, /* 3420 */
|
||||
TCO_3450, /* 3450 */
|
||||
TCO_EP80579, /* EP80579 */
|
||||
TCO_CPTD, /* CPT Desktop */
|
||||
TCO_CPTM, /* CPT Mobile */
|
||||
TCO_CPT1, /* Cougar Point */
|
||||
TCO_CPT2, /* Cougar Point Desktop */
|
||||
TCO_CPT3, /* Cougar Point Mobile */
|
||||
TCO_CPT4, /* Cougar Point */
|
||||
TCO_CPT5, /* Cougar Point */
|
||||
TCO_CPT6, /* Cougar Point */
|
||||
TCO_CPT7, /* Cougar Point */
|
||||
TCO_CPT8, /* Cougar Point */
|
||||
TCO_CPT9, /* Cougar Point */
|
||||
TCO_CPT10, /* Cougar Point */
|
||||
TCO_CPT11, /* Cougar Point */
|
||||
TCO_CPT12, /* Cougar Point */
|
||||
TCO_CPT13, /* Cougar Point */
|
||||
TCO_CPT14, /* Cougar Point */
|
||||
TCO_CPT15, /* Cougar Point */
|
||||
TCO_CPT16, /* Cougar Point */
|
||||
TCO_CPT17, /* Cougar Point */
|
||||
TCO_CPT18, /* Cougar Point */
|
||||
TCO_CPT19, /* Cougar Point */
|
||||
TCO_CPT20, /* Cougar Point */
|
||||
TCO_CPT21, /* Cougar Point */
|
||||
TCO_CPT22, /* Cougar Point */
|
||||
TCO_CPT23, /* Cougar Point */
|
||||
TCO_CPT24, /* Cougar Point */
|
||||
TCO_CPT25, /* Cougar Point */
|
||||
TCO_CPT26, /* Cougar Point */
|
||||
TCO_CPT27, /* Cougar Point */
|
||||
TCO_CPT28, /* Cougar Point */
|
||||
TCO_CPT29, /* Cougar Point */
|
||||
TCO_CPT30, /* Cougar Point */
|
||||
TCO_CPT31, /* Cougar Point */
|
||||
};
|
||||
|
||||
static struct {
|
||||
|
@ -173,8 +202,37 @@ static struct {
|
|||
{"3420", 2},
|
||||
{"3450", 2},
|
||||
{"EP80579", 2},
|
||||
{"CPT Desktop", 2},
|
||||
{"CPT Mobile", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{"Cougar Point", 2},
|
||||
{NULL, 0}
|
||||
};
|
||||
|
||||
|
@ -259,8 +317,37 @@ static struct pci_device_id iTCO_wdt_pci_tbl[] = {
|
|||
{ ITCO_PCI_DEVICE(0x3b14, TCO_3420)},
|
||||
{ ITCO_PCI_DEVICE(0x3b16, TCO_3450)},
|
||||
{ ITCO_PCI_DEVICE(0x5031, TCO_EP80579)},
|
||||
{ ITCO_PCI_DEVICE(0x1c42, TCO_CPTD)},
|
||||
{ ITCO_PCI_DEVICE(0x1c43, TCO_CPTM)},
|
||||
{ ITCO_PCI_DEVICE(0x1c41, TCO_CPT1)},
|
||||
{ ITCO_PCI_DEVICE(0x1c42, TCO_CPT2)},
|
||||
{ ITCO_PCI_DEVICE(0x1c43, TCO_CPT3)},
|
||||
{ ITCO_PCI_DEVICE(0x1c44, TCO_CPT4)},
|
||||
{ ITCO_PCI_DEVICE(0x1c45, TCO_CPT5)},
|
||||
{ ITCO_PCI_DEVICE(0x1c46, TCO_CPT6)},
|
||||
{ ITCO_PCI_DEVICE(0x1c47, TCO_CPT7)},
|
||||
{ ITCO_PCI_DEVICE(0x1c48, TCO_CPT8)},
|
||||
{ ITCO_PCI_DEVICE(0x1c49, TCO_CPT9)},
|
||||
{ ITCO_PCI_DEVICE(0x1c4a, TCO_CPT10)},
|
||||
{ ITCO_PCI_DEVICE(0x1c4b, TCO_CPT11)},
|
||||
{ ITCO_PCI_DEVICE(0x1c4c, TCO_CPT12)},
|
||||
{ ITCO_PCI_DEVICE(0x1c4d, TCO_CPT13)},
|
||||
{ ITCO_PCI_DEVICE(0x1c4e, TCO_CPT14)},
|
||||
{ ITCO_PCI_DEVICE(0x1c4f, TCO_CPT15)},
|
||||
{ ITCO_PCI_DEVICE(0x1c50, TCO_CPT16)},
|
||||
{ ITCO_PCI_DEVICE(0x1c51, TCO_CPT17)},
|
||||
{ ITCO_PCI_DEVICE(0x1c52, TCO_CPT18)},
|
||||
{ ITCO_PCI_DEVICE(0x1c53, TCO_CPT19)},
|
||||
{ ITCO_PCI_DEVICE(0x1c54, TCO_CPT20)},
|
||||
{ ITCO_PCI_DEVICE(0x1c55, TCO_CPT21)},
|
||||
{ ITCO_PCI_DEVICE(0x1c56, TCO_CPT22)},
|
||||
{ ITCO_PCI_DEVICE(0x1c57, TCO_CPT23)},
|
||||
{ ITCO_PCI_DEVICE(0x1c58, TCO_CPT24)},
|
||||
{ ITCO_PCI_DEVICE(0x1c59, TCO_CPT25)},
|
||||
{ ITCO_PCI_DEVICE(0x1c5a, TCO_CPT26)},
|
||||
{ ITCO_PCI_DEVICE(0x1c5b, TCO_CPT27)},
|
||||
{ ITCO_PCI_DEVICE(0x1c5c, TCO_CPT28)},
|
||||
{ ITCO_PCI_DEVICE(0x1c5d, TCO_CPT29)},
|
||||
{ ITCO_PCI_DEVICE(0x1c5e, TCO_CPT30)},
|
||||
{ ITCO_PCI_DEVICE(0x1c5f, TCO_CPT31)},
|
||||
{ 0, }, /* End of list */
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl);
|
||||
|
|
|
@ -52,7 +52,7 @@ static struct {
|
|||
struct timer_list timer; /* The timer that pings the watchdog */
|
||||
} pikawdt_private;
|
||||
|
||||
static const struct watchdog_info ident = {
|
||||
static struct watchdog_info ident = {
|
||||
.identity = DRV_NAME,
|
||||
.options = WDIOF_CARDRESET |
|
||||
WDIOF_SETTIMEOUT |
|
||||
|
|
Loading…
Reference in New Issue