diff options
| -rw-r--r-- | arch/x86/kernel/tsc.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c index ebb9bf824a07..52284d31fc9c 100644 --- a/arch/x86/kernel/tsc.c +++ b/arch/x86/kernel/tsc.c | |||
| @@ -104,7 +104,7 @@ __setup("notsc", notsc_setup); | |||
| 104 | /* | 104 | /* |
| 105 | * Read TSC and the reference counters. Take care of SMI disturbance | 105 | * Read TSC and the reference counters. Take care of SMI disturbance |
| 106 | */ | 106 | */ |
| 107 | static u64 tsc_read_refs(u64 *pm, u64 *hpet) | 107 | static u64 tsc_read_refs(u64 *p, int hpet) |
| 108 | { | 108 | { |
| 109 | u64 t1, t2; | 109 | u64 t1, t2; |
| 110 | int i; | 110 | int i; |
| @@ -112,9 +112,9 @@ static u64 tsc_read_refs(u64 *pm, u64 *hpet) | |||
| 112 | for (i = 0; i < MAX_RETRIES; i++) { | 112 | for (i = 0; i < MAX_RETRIES; i++) { |
| 113 | t1 = get_cycles(); | 113 | t1 = get_cycles(); |
| 114 | if (hpet) | 114 | if (hpet) |
| 115 | *hpet = hpet_readl(HPET_COUNTER) & 0xFFFFFFFF; | 115 | *p = hpet_readl(HPET_COUNTER) & 0xFFFFFFFF; |
| 116 | else | 116 | else |
| 117 | *pm = acpi_pm_read_early(); | 117 | *p = acpi_pm_read_early(); |
| 118 | t2 = get_cycles(); | 118 | t2 = get_cycles(); |
| 119 | if ((t2 - t1) < SMI_TRESHOLD) | 119 | if ((t2 - t1) < SMI_TRESHOLD) |
| 120 | return t2; | 120 | return t2; |
| @@ -228,7 +228,7 @@ static unsigned long pit_calibrate_tsc(void) | |||
| 228 | */ | 228 | */ |
| 229 | unsigned long native_calibrate_tsc(void) | 229 | unsigned long native_calibrate_tsc(void) |
| 230 | { | 230 | { |
| 231 | u64 tsc1, tsc2, delta, pm1, pm2, hpet1, hpet2; | 231 | u64 tsc1, tsc2, delta, ref1, ref2; |
| 232 | unsigned long tsc_pit_min = ULONG_MAX, tsc_ref_min = ULONG_MAX; | 232 | unsigned long tsc_pit_min = ULONG_MAX, tsc_ref_min = ULONG_MAX; |
| 233 | unsigned long flags; | 233 | unsigned long flags; |
| 234 | int hpet = is_hpet_enabled(), i; | 234 | int hpet = is_hpet_enabled(), i; |
| @@ -267,16 +267,16 @@ unsigned long native_calibrate_tsc(void) | |||
| 267 | * read the end value. | 267 | * read the end value. |
| 268 | */ | 268 | */ |
| 269 | local_irq_save(flags); | 269 | local_irq_save(flags); |
| 270 | tsc1 = tsc_read_refs(&pm1, hpet ? &hpet1 : NULL); | 270 | tsc1 = tsc_read_refs(&ref1, hpet); |
| 271 | tsc_pit_khz = pit_calibrate_tsc(); | 271 | tsc_pit_khz = pit_calibrate_tsc(); |
| 272 | tsc2 = tsc_read_refs(&pm2, hpet ? &hpet2 : NULL); | 272 | tsc2 = tsc_read_refs(&ref2, hpet); |
| 273 | local_irq_restore(flags); | 273 | local_irq_restore(flags); |
| 274 | 274 | ||
| 275 | /* Pick the lowest PIT TSC calibration so far */ | 275 | /* Pick the lowest PIT TSC calibration so far */ |
| 276 | tsc_pit_min = min(tsc_pit_min, tsc_pit_khz); | 276 | tsc_pit_min = min(tsc_pit_min, tsc_pit_khz); |
| 277 | 277 | ||
| 278 | /* hpet or pmtimer available ? */ | 278 | /* hpet or pmtimer available ? */ |
| 279 | if (!hpet && !pm1 && !pm2) | 279 | if (!hpet && !ref1 && !ref2) |
| 280 | continue; | 280 | continue; |
| 281 | 281 | ||
| 282 | /* Check, whether the sampling was disturbed by an SMI */ | 282 | /* Check, whether the sampling was disturbed by an SMI */ |
| @@ -285,9 +285,9 @@ unsigned long native_calibrate_tsc(void) | |||
| 285 | 285 | ||
| 286 | tsc2 = (tsc2 - tsc1) * 1000000LL; | 286 | tsc2 = (tsc2 - tsc1) * 1000000LL; |
| 287 | if (hpet) | 287 | if (hpet) |
| 288 | tsc2 = calc_hpet_ref(tsc2, hpet1, hpet2); | 288 | tsc2 = calc_hpet_ref(tsc2, ref1, ref2); |
| 289 | else | 289 | else |
| 290 | tsc2 = calc_pmtimer_ref(tsc2, pm1, pm2); | 290 | tsc2 = calc_pmtimer_ref(tsc2, ref1, ref2); |
| 291 | 291 | ||
| 292 | tsc_ref_min = min(tsc_ref_min, (unsigned long) tsc2); | 292 | tsc_ref_min = min(tsc_ref_min, (unsigned long) tsc2); |
| 293 | } | 293 | } |
| @@ -301,7 +301,7 @@ unsigned long native_calibrate_tsc(void) | |||
| 301 | "SMI disturbance.\n"); | 301 | "SMI disturbance.\n"); |
| 302 | 302 | ||
| 303 | /* We don't have an alternative source, disable TSC */ | 303 | /* We don't have an alternative source, disable TSC */ |
| 304 | if (!hpet && !pm1 && !pm2) { | 304 | if (!hpet && !ref1 && !ref2) { |
| 305 | printk("TSC: No reference (HPET/PMTIMER) available\n"); | 305 | printk("TSC: No reference (HPET/PMTIMER) available\n"); |
| 306 | return 0; | 306 | return 0; |
| 307 | } | 307 | } |
| @@ -321,7 +321,7 @@ unsigned long native_calibrate_tsc(void) | |||
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | /* We don't have an alternative source, use the PIT calibration value */ | 323 | /* We don't have an alternative source, use the PIT calibration value */ |
| 324 | if (!hpet && !pm1 && !pm2) { | 324 | if (!hpet && !ref1 && !ref2) { |
| 325 | printk(KERN_INFO "TSC: Using PIT calibration value\n"); | 325 | printk(KERN_INFO "TSC: Using PIT calibration value\n"); |
| 326 | return tsc_pit_min; | 326 | return tsc_pit_min; |
| 327 | } | 327 | } |
