x86: tsc: Add support for new S3_NONSTOP feature
authorFeng Tang <feng.tang@intel.com>
Tue, 12 Mar 2013 03:56:47 +0000 (11:56 +0800)
committerJohn Stultz <john.stultz@linaro.org>
Fri, 15 Mar 2013 23:51:18 +0000 (16:51 -0700)
Add support for new S3_NONSTOP feature

Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
arch/x86/kernel/tsc.c

index 4b9ea10..098b3cf 100644 (file)
@@ -768,7 +768,8 @@ static cycle_t read_tsc(struct clocksource *cs)
 
 static void resume_tsc(struct clocksource *cs)
 {
-       clocksource_tsc.cycle_last = 0;
+       if (!boot_cpu_has(X86_FEATURE_NONSTOP_TSC_S3))
+               clocksource_tsc.cycle_last = 0;
 }
 
 static struct clocksource clocksource_tsc = {
@@ -939,6 +940,9 @@ static int __init init_tsc_clocksource(void)
                clocksource_tsc.flags &= ~CLOCK_SOURCE_IS_CONTINUOUS;
        }
 
+       if (boot_cpu_has(X86_FEATURE_NONSTOP_TSC_S3))
+               clocksource_tsc.flags |= CLOCK_SOURCE_SUSPEND_NONSTOP;
+
        /*
         * Trust the results of the earlier calibration on systems
         * exporting a reliable TSC.