diff options
Diffstat (limited to 'arch/i386/kernel/apic.c')
-rw-r--r-- | arch/i386/kernel/apic.c | 32 |
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 | */ | ||
277 | static 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 | |||
285 | static 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 | */ |