]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/i386/kernel/apic.c
[PATCH] x86-64: Disable local APIC timer use on AMD systems with C1E
[linux-2.6-omap-h63xx.git] / arch / i386 / kernel / apic.c
index e88415282a6f0ebf3024c2a5b1165e95502686e2..93aa911646ad5140310ceeb78c8b410322f4768a 100644 (file)
@@ -271,32 +271,6 @@ static void __devinit setup_APIC_timer(void)
        clockevents_register_device(levt);
 }
 
-/*
- * Detect systems with known broken BIOS implementations
- */
-static int __init lapic_check_broken_bios(struct dmi_system_id *d)
-{
-       printk(KERN_NOTICE "%s detected: disabling lapic timer.\n",
-                      d->ident);
-       local_apic_timer_disabled = 1;
-       return 0;
-}
-
-static struct dmi_system_id __initdata broken_bios_dmi_table[] = {
-       {
-               /*
-                * BIOS exports only C1 state, but uses deeper power
-                * modes behind the kernels back.
-                */
-                 .callback = lapic_check_broken_bios,
-                 .ident = "HP nx6325",
-                 .matches = {
-                       DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6325"),
-                 },
-        },
-        {}
-};
-
 /*
  * In this functions we calibrate APIC bus clocks to the external timer.
  *
@@ -372,12 +346,12 @@ void __init setup_boot_APIC_clock(void)
        long delta, deltapm;
        int pm_referenced = 0;
 
-       /* Detect know broken systems */
-       dmi_check_system(broken_bios_dmi_table);
+       if (boot_cpu_has(X86_FEATURE_LAPIC_TIMER_BROKEN))
+               local_apic_timer_disabled = 1;
 
        /*
         * The local apic timer can be disabled via the kernel
-        * commandline or from the dmi quirk above. Register the lapic
+        * commandline or from the test above. Register the lapic
         * timer as a dummy clock event source on SMP systems, so the
         * broadcast mechanism is used. On UP systems simply ignore it.
         */