diff options
Diffstat (limited to 'sys/dev/acpica/acpi_timer.c')
-rw-r--r-- | sys/dev/acpica/acpi_timer.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/acpica/acpi_timer.c b/sys/dev/acpica/acpi_timer.c index 80e6d18..b974f1f 100644 --- a/sys/dev/acpica/acpi_timer.c +++ b/sys/dev/acpica/acpi_timer.c @@ -189,6 +189,7 @@ acpi_timer_probe(device_t dev) else acpi_timer_timecounter.tc_counter_mask = 0x00ffffff; acpi_timer_timecounter.tc_frequency = acpi_timer_frequency; + acpi_timer_timecounter.tc_flags = TC_FLAGS_SUSPEND_SAFE; if (testenv("debug.acpi.timer_test")) acpi_timer_boot_test(); @@ -285,6 +286,14 @@ acpi_timer_suspend_handler(struct timecounter *newtc) acpi_timer_eh = NULL; } + if ((timecounter->tc_flags & TC_FLAGS_SUSPEND_SAFE) != 0) { + /* + * If we are using a suspend safe timecounter, don't + * save/restore it across suspend/resume. + */ + return; + } + KASSERT(newtc == &acpi_timer_timecounter, ("acpi_timer_suspend_handler: wrong timecounter")); |