Loading Documentation/watchdog/watchdog-parameters.txt +1 −1 Original line number Diff line number Diff line Loading @@ -117,7 +117,7 @@ nowayout: Watchdog cannot be stopped once started ------------------------------------------------- iTCO_wdt: heartbeat: Watchdog heartbeat in seconds. (5<=heartbeat<=74 (TCO v1) or 1226 (TCO v2), default=30) (2<heartbeat<39 (TCO v1) or 613 (TCO v2), default=30) nowayout: Watchdog cannot be stopped once started (default=kernel config parameter) ------------------------------------------------- Loading drivers/watchdog/iTCO_wdt.c +12 −10 Original line number Diff line number Diff line Loading @@ -306,15 +306,16 @@ static int iTCO_wdt_ping(struct watchdog_device *wd_dev) iTCO_vendor_pre_keepalive(p->smi_res, wd_dev->timeout); /* Reload the timer by writing to the TCO Timer Counter register */ if (p->iTCO_version >= 2) { outw(0x01, TCO_RLD(p)); } else if (p->iTCO_version == 1) { /* Reset the timeout status bit so that the timer * needs to count down twice again before rebooting */ outw(0x0008, TCO1_STS(p)); /* write 1 to clear bit */ /* Reload the timer by writing to the TCO Timer Counter register */ if (p->iTCO_version >= 2) outw(0x01, TCO_RLD(p)); else if (p->iTCO_version == 1) outb(0x01, TCO_RLD(p)); } spin_unlock(&p->io_lock); return 0; Loading @@ -327,8 +328,11 @@ static int iTCO_wdt_set_timeout(struct watchdog_device *wd_dev, unsigned int t) unsigned char val8; unsigned int tmrval; /* The timer counts down twice before rebooting */ tmrval = seconds_to_ticks(p, t) / 2; tmrval = seconds_to_ticks(p, t); /* For TCO v1 the timer counts down twice before rebooting */ if (p->iTCO_version == 1) tmrval /= 2; /* from the specs: */ /* "Values of 0h-3h are ignored and should not be attempted" */ Loading Loading @@ -381,8 +385,6 @@ static unsigned int iTCO_wdt_get_timeleft(struct watchdog_device *wd_dev) spin_lock(&p->io_lock); val16 = inw(TCO_RLD(p)); val16 &= 0x3ff; if (!(inw(TCO1_STS(p)) & 0x0008)) val16 += (inw(TCOv2_TMR(p)) & 0x3ff); spin_unlock(&p->io_lock); time_left = ticks_to_seconds(p, val16); Loading Loading
Documentation/watchdog/watchdog-parameters.txt +1 −1 Original line number Diff line number Diff line Loading @@ -117,7 +117,7 @@ nowayout: Watchdog cannot be stopped once started ------------------------------------------------- iTCO_wdt: heartbeat: Watchdog heartbeat in seconds. (5<=heartbeat<=74 (TCO v1) or 1226 (TCO v2), default=30) (2<heartbeat<39 (TCO v1) or 613 (TCO v2), default=30) nowayout: Watchdog cannot be stopped once started (default=kernel config parameter) ------------------------------------------------- Loading
drivers/watchdog/iTCO_wdt.c +12 −10 Original line number Diff line number Diff line Loading @@ -306,15 +306,16 @@ static int iTCO_wdt_ping(struct watchdog_device *wd_dev) iTCO_vendor_pre_keepalive(p->smi_res, wd_dev->timeout); /* Reload the timer by writing to the TCO Timer Counter register */ if (p->iTCO_version >= 2) { outw(0x01, TCO_RLD(p)); } else if (p->iTCO_version == 1) { /* Reset the timeout status bit so that the timer * needs to count down twice again before rebooting */ outw(0x0008, TCO1_STS(p)); /* write 1 to clear bit */ /* Reload the timer by writing to the TCO Timer Counter register */ if (p->iTCO_version >= 2) outw(0x01, TCO_RLD(p)); else if (p->iTCO_version == 1) outb(0x01, TCO_RLD(p)); } spin_unlock(&p->io_lock); return 0; Loading @@ -327,8 +328,11 @@ static int iTCO_wdt_set_timeout(struct watchdog_device *wd_dev, unsigned int t) unsigned char val8; unsigned int tmrval; /* The timer counts down twice before rebooting */ tmrval = seconds_to_ticks(p, t) / 2; tmrval = seconds_to_ticks(p, t); /* For TCO v1 the timer counts down twice before rebooting */ if (p->iTCO_version == 1) tmrval /= 2; /* from the specs: */ /* "Values of 0h-3h are ignored and should not be attempted" */ Loading Loading @@ -381,8 +385,6 @@ static unsigned int iTCO_wdt_get_timeleft(struct watchdog_device *wd_dev) spin_lock(&p->io_lock); val16 = inw(TCO_RLD(p)); val16 &= 0x3ff; if (!(inw(TCO1_STS(p)) & 0x0008)) val16 += (inw(TCOv2_TMR(p)) & 0x3ff); spin_unlock(&p->io_lock); time_left = ticks_to_seconds(p, val16); Loading