Fixed TCO v3 tick convert
TCO v3's internal timer is stored as seconds. Submitted by: Denir Li <denir-li@users.noreply.github.com> Pull Request: https://github.com/freebsd/freebsd/pull/51 Pull Request: https://github.com/freebsd/freebsd/pull/52
This commit is contained in:
parent
1e71804f3e
commit
ed4a41c447
@ -512,7 +512,13 @@ ichwd_event(void *arg, unsigned int cmd, int *error)
|
||||
|
||||
/* convert from power-of-two-ns to WDT ticks */
|
||||
cmd &= WD_INTERVAL;
|
||||
timeout = ((uint64_t)1 << cmd) / ICHWD_TICK;
|
||||
|
||||
if (sc->tco_version == 3) {
|
||||
timeout = ((uint64_t)1 << cmd) / ICHWD_TCO_V3_TICK;
|
||||
} else {
|
||||
timeout = ((uint64_t)1 << cmd) / ICHWD_TICK;
|
||||
}
|
||||
|
||||
if (cmd) {
|
||||
if (!sc->active)
|
||||
ichwd_tmr_enable(sc);
|
||||
|
@ -345,7 +345,9 @@ struct ichwd_softc {
|
||||
#define TCO_RLD1_TMR_MAX 0x003f
|
||||
#define TCO_RLD2_TMR_MAX 0x03ff
|
||||
|
||||
/* approximate length in nanoseconds of one WDT tick (about 0.6 sec) */
|
||||
/* approximate length in nanoseconds of one WDT tick (about 0.6 sec) for TCO v1/v2 */
|
||||
#define ICHWD_TICK 600000000
|
||||
/* approximate length in nanoseconds of one WDT tick (about 1.0 sec) for TCO v3 */
|
||||
#define ICHWD_TCO_V3_TICK 1000000000
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user