vserver 1.9.3
[linux-2.6.git] / arch / i386 / kernel / dmi_scan.c
index d2d2610..d4f4a5a 100644 (file)
@@ -4,7 +4,7 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <asm/acpi.h>
+#include <linux/acpi.h>
 #include <asm/io.h>
 #include <linux/pm.h>
 #include <asm/system.h>
@@ -162,27 +162,6 @@ static void __init dmi_save_ident(struct dmi_header *dm, int slot, int string)
 #define NO_MATCH       { DMI_NONE, NULL}
 #define MATCH          DMI_MATCH
 
-/*
- * Some machines, usually laptops, can't handle an enabled local APIC.
- * The symptoms include hangs or reboots when suspending or resuming,
- * attaching or detaching the power cord, or entering BIOS setup screens
- * through magic key sequences.
- */
-static int __init local_apic_kills_bios(struct dmi_blacklist *d)
-{
-#ifdef CONFIG_X86_LOCAL_APIC
-       extern int enable_local_apic;
-       if (enable_local_apic == 0) {
-               enable_local_apic = -1;
-               printk(KERN_WARNING "%s with broken BIOS detected. "
-                      "Refusing to enable the local APIC.\n",
-                      d->ident);
-       }
-#endif
-       return 0;
-}
-
-
 /*
  * Toshiba keyboard likes to repeat keys when they are not repeated.
  */
@@ -284,32 +263,6 @@ static __init int disable_acpi_pci(struct dmi_blacklist *d)
  
 static __initdata struct dmi_blacklist dmi_blacklist[]={
 
-       /* Machines which have problems handling enabled local APICs */
-
-       { local_apic_kills_bios, "Dell Inspiron", {
-                       MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
-                       MATCH(DMI_PRODUCT_NAME, "Inspiron"),
-                       NO_MATCH, NO_MATCH
-                       } },
-
-       { local_apic_kills_bios, "Dell Latitude", {
-                       MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
-                       MATCH(DMI_PRODUCT_NAME, "Latitude"),
-                       NO_MATCH, NO_MATCH
-                       } },
-
-       { local_apic_kills_bios, "IBM Thinkpad T20", {
-                       MATCH(DMI_BOARD_VENDOR, "IBM"),
-                       MATCH(DMI_BOARD_NAME, "264741U"),
-                       NO_MATCH, NO_MATCH
-                       } },
-
-       { local_apic_kills_bios, "ASUS L3C", {
-                       MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
-                       MATCH(DMI_BOARD_NAME, "P4_L3C"),
-                       NO_MATCH, NO_MATCH
-                       } },
-
        { broken_toshiba_keyboard, "Toshiba Satellite 4030cdt", { /* Keyboard generates spurious repeats */
                        MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"),
                        NO_MATCH, NO_MATCH, NO_MATCH
@@ -490,41 +443,6 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
 
        { NULL, }
 };
-       
-       
-/*
- *     Walk the blacklist table running matching functions until someone 
- *     returns 1 or we hit the end.
- */
-
-static __init void dmi_check_blacklist(void)
-{
-#ifdef CONFIG_ACPI_BOOT
-#define        ACPI_BLACKLIST_CUTOFF_YEAR      2001
-
-       if (dmi_ident[DMI_BIOS_DATE]) { 
-               char *s = strrchr(dmi_ident[DMI_BIOS_DATE], '/'); 
-               if (s) { 
-                       int year, disable = 0;
-                       s++; 
-                       year = simple_strtoul(s,NULL,0); 
-                       if (year >= 1000) 
-                               disable = year < ACPI_BLACKLIST_CUTOFF_YEAR; 
-                       else if (year < 1 || (year > 90 && year <= 99))
-                               disable = 1; 
-                       if (disable && !acpi_force) { 
-                               printk(KERN_NOTICE "ACPI disabled because your bios is from %s and too old\n", s);
-                               printk(KERN_NOTICE "You can enable it with acpi=force\n");
-                               disable_acpi();
-                       } 
-               }
-       }
-#endif
-       dmi_check_system(dmi_blacklist);
-}
-
-       
 
 /*
  *     Process a DMI table entry. Right now all we care about are the BIOS
@@ -582,7 +500,7 @@ void __init dmi_scan_machine(void)
 {
        int err = dmi_iterate(dmi_decode);
        if(err == 0)
-               dmi_check_blacklist();
+               dmi_check_system(dmi_blacklist);
        else
                printk(KERN_INFO "DMI not present.\n");
 }