summaryrefslogtreecommitdiffstats
path: root/sys/x86
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2011-07-14 21:00:26 +0000
committerjkim <jkim@FreeBSD.org>2011-07-14 21:00:26 +0000
commit96d6cc9832b1e44e9d22ebafdc953a241c07c9d9 (patch)
tree9a2f51e9df71efecc4be43c619d3287cabc1edf5 /sys/x86
parentaadbd5321a07ba56dde92245c908feb3e6e2cb94 (diff)
downloadFreeBSD-src-96d6cc9832b1e44e9d22ebafdc953a241c07c9d9.zip
FreeBSD-src-96d6cc9832b1e44e9d22ebafdc953a241c07c9d9.tar.gz
If TSC stops ticking in C3, disable deep sleep when the user forcefully
select TSC as timecounter hardware. Tested by: Fabian Keil (freebsd-listen at fabiankeil dot de)
Diffstat (limited to 'sys/x86')
-rw-r--r--sys/x86/x86/tsc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/x86/x86/tsc.c b/sys/x86/x86/tsc.c
index 5f17f62..0b383bf 100644
--- a/sys/x86/x86/tsc.c
+++ b/sys/x86/x86/tsc.c
@@ -452,6 +452,7 @@ init_TSC_tc(void)
if (cpu_can_deep_sleep && cpu_vendor_id == CPU_VENDOR_INTEL &&
(amd_pminfo & AMDPM_TSC_INVARIANT) == 0) {
tsc_timecounter.tc_quality = -1000;
+ tsc_timecounter.tc_flags |= TC_FLAGS_C3STOP;
if (bootverbose)
printf("TSC timecounter disabled: C3 enabled.\n");
goto init;
OpenPOWER on IntegriCloud