aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/apic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/kernel/apic.c')
-rw-r--r--arch/i386/kernel/apic.c32
1 files changed, 3 insertions, 29 deletions
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c
index e88415282a6f..93aa911646ad 100644
--- a/arch/i386/kernel/apic.c
+++ b/arch/i386/kernel/apic.c
@@ -272,32 +272,6 @@ static void __devinit setup_APIC_timer(void)
272} 272}
273 273
274/* 274/*
275 * Detect systems with known broken BIOS implementations
276 */
277static int __init lapic_check_broken_bios(struct dmi_system_id *d)
278{
279 printk(KERN_NOTICE "%s detected: disabling lapic timer.\n",
280 d->ident);
281 local_apic_timer_disabled = 1;
282 return 0;
283}
284
285static struct dmi_system_id __initdata broken_bios_dmi_table[] = {
286 {
287 /*
288 * BIOS exports only C1 state, but uses deeper power
289 * modes behind the kernels back.
290 */
291 .callback = lapic_check_broken_bios,
292 .ident = "HP nx6325",
293 .matches = {
294 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6325"),
295 },
296 },
297 {}
298};
299
300/*
301 * In this functions we calibrate APIC bus clocks to the external timer. 275 * In this functions we calibrate APIC bus clocks to the external timer.
302 * 276 *
303 * We want to do the calibration only once since we want to have local timer 277 * We want to do the calibration only once since we want to have local timer
@@ -372,12 +346,12 @@ void __init setup_boot_APIC_clock(void)
372 long delta, deltapm; 346 long delta, deltapm;
373 int pm_referenced = 0; 347 int pm_referenced = 0;
374 348
375 /* Detect know broken systems */ 349 if (boot_cpu_has(X86_FEATURE_LAPIC_TIMER_BROKEN))
376 dmi_check_system(broken_bios_dmi_table); 350 local_apic_timer_disabled = 1;
377 351
378 /* 352 /*
379 * The local apic timer can be disabled via the kernel 353 * The local apic timer can be disabled via the kernel
380 * commandline or from the dmi quirk above. Register the lapic 354 * commandline or from the test above. Register the lapic
381 * timer as a dummy clock event source on SMP systems, so the 355 * timer as a dummy clock event source on SMP systems, so the
382 * broadcast mechanism is used. On UP systems simply ignore it. 356 * broadcast mechanism is used. On UP systems simply ignore it.
383 */ 357 */