diff options
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/kernel/paravirt.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/time.c | 14 |
2 files changed, 12 insertions, 4 deletions
diff --git a/arch/i386/kernel/paravirt.c b/arch/i386/kernel/paravirt.c index 871448db1425..2ec331e03fa9 100644 --- a/arch/i386/kernel/paravirt.c +++ b/arch/i386/kernel/paravirt.c | |||
@@ -494,7 +494,7 @@ struct paravirt_ops paravirt_ops = { | |||
494 | .memory_setup = machine_specific_memory_setup, | 494 | .memory_setup = machine_specific_memory_setup, |
495 | .get_wallclock = native_get_wallclock, | 495 | .get_wallclock = native_get_wallclock, |
496 | .set_wallclock = native_set_wallclock, | 496 | .set_wallclock = native_set_wallclock, |
497 | .time_init = time_init_hook, | 497 | .time_init = hpet_time_init, |
498 | .init_IRQ = native_init_IRQ, | 498 | .init_IRQ = native_init_IRQ, |
499 | 499 | ||
500 | .cpuid = native_cpuid, | 500 | .cpuid = native_cpuid, |
diff --git a/arch/i386/kernel/time.c b/arch/i386/kernel/time.c index a5350059557a..ccd3734edb8f 100644 --- a/arch/i386/kernel/time.c +++ b/arch/i386/kernel/time.c | |||
@@ -262,14 +262,22 @@ void notify_arch_cmos_timer(void) | |||
262 | 262 | ||
263 | extern void (*late_time_init)(void); | 263 | extern void (*late_time_init)(void); |
264 | /* Duplicate of time_init() below, with hpet_enable part added */ | 264 | /* Duplicate of time_init() below, with hpet_enable part added */ |
265 | static void __init hpet_time_init(void) | 265 | void __init hpet_time_init(void) |
266 | { | 266 | { |
267 | if (!hpet_enable()) | 267 | if (!hpet_enable()) |
268 | setup_pit_timer(); | 268 | setup_pit_timer(); |
269 | do_time_init(); | 269 | time_init_hook(); |
270 | } | 270 | } |
271 | 271 | ||
272 | /* | ||
273 | * This is called directly from init code; we must delay timer setup in the | ||
274 | * HPET case as we can't make the decision to turn on HPET this early in the | ||
275 | * boot process. | ||
276 | * | ||
277 | * The chosen time_init function will usually be hpet_time_init, above, but | ||
278 | * in the case of virtual hardware, an alternative function may be substituted. | ||
279 | */ | ||
272 | void __init time_init(void) | 280 | void __init time_init(void) |
273 | { | 281 | { |
274 | late_time_init = hpet_time_init; | 282 | late_time_init = choose_time_init(); |
275 | } | 283 | } |