summaryrefslogtreecommitdiff
path: root/arch/x86_64
diff options
context:
space:
mode:
authorJordan Hargrave <jordan_hargrave@dell.com>2006-04-07 17:50:18 (GMT)
committerLinus Torvalds <torvalds@g5.osdl.org>2006-04-09 18:53:53 (GMT)
commitb20367a6c2a0cd937cb1f0a8cf848f1402fef99c (patch)
tree8624096baed40f8f89e757b2d170a7b4d1844575 /arch/x86_64
parent49c93e84d8b2d602a07c302c7e3cd4fa09095fbb (diff)
downloadlinux-fsl-qoriq-b20367a6c2a0cd937cb1f0a8cf848f1402fef99c.tar.xz
[PATCH] x86_64: Fix drift with HPET timer enabled
If the HPET timer is enabled, the clock can drift by ~3 seconds a day. This is due to the HPET timer not being initialized with the correct setting (still using PIT count). If HZ changes, this drift can become even more pronounced. HPET patch initializes tick_nsec with correct tick_nsec settings for HPET timer. Vojtech comments: "It's not entirely correct (it assumes the HPET ticks totally exactly), but it's significantly better than assuming the PIT error there." Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64')
-rw-r--r--arch/x86_64/kernel/time.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86_64/kernel/time.c b/arch/x86_64/kernel/time.c
index 2eeaa95..7392570 100644
--- a/arch/x86_64/kernel/time.c
+++ b/arch/x86_64/kernel/time.c
@@ -917,6 +917,8 @@ void __init time_init(void)
vxtime.hpet_address = 0;
if (hpet_use_timer) {
+ /* set tick_nsec to use the proper rate for HPET */
+ tick_nsec = TICK_NSEC_HPET;
cpu_khz = hpet_calibrate_tsc();
timename = "HPET";
#ifdef CONFIG_X86_PM_TIMER