Commit 4116c527 authored by Venkatesh Pallipadi's avatar Venkatesh Pallipadi Committed by Linus Torvalds

[PATCH] hpet: use read_timer_tsc only when CPU has TSC

Only use read_timer_tsc only when CPU has TSC.  Thanks to Andrea for
pointing this out.  Should not be issue on any platforms as all recent
systems that has HPET also has CPUs that supports TSC.  The patch is still
required for correctness.
Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 869f96a0
...@@ -136,6 +136,8 @@ static void delay_hpet(unsigned long loops) ...@@ -136,6 +136,8 @@ static void delay_hpet(unsigned long loops)
} while ((hpet_end - hpet_start) < (loops)); } while ((hpet_end - hpet_start) < (loops));
} }
static struct timer_opts timer_hpet;
static int __init init_hpet(char* override) static int __init init_hpet(char* override)
{ {
unsigned long result, remain; unsigned long result, remain;
...@@ -163,6 +165,8 @@ static int __init init_hpet(char* override) ...@@ -163,6 +165,8 @@ static int __init init_hpet(char* override)
} }
set_cyc2ns_scale(cpu_khz/1000); set_cyc2ns_scale(cpu_khz/1000);
} }
/* set this only when cpu_has_tsc */
timer_hpet.read_timer = read_timer_tsc;
} }
/* /*
...@@ -186,7 +190,6 @@ static struct timer_opts timer_hpet __read_mostly = { ...@@ -186,7 +190,6 @@ static struct timer_opts timer_hpet __read_mostly = {
.get_offset = get_offset_hpet, .get_offset = get_offset_hpet,
.monotonic_clock = monotonic_clock_hpet, .monotonic_clock = monotonic_clock_hpet,
.delay = delay_hpet, .delay = delay_hpet,
.read_timer = read_timer_tsc,
}; };
struct init_timer_opts __initdata timer_hpet_init = { struct init_timer_opts __initdata timer_hpet_init = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment