vserver 1.9.5.x5
[linux-2.6.git] / arch / i386 / kernel / dmi_scan.c
index d4f4a5a..78bbcba 100644 (file)
@@ -102,11 +102,18 @@ inline static int __init dmi_checksum(u8 *buf)
 static int __init dmi_iterate(void (*decode)(struct dmi_header *))
 {
        u8 buf[15];
-       u32 fp=0xF0000;
+       char __iomem *p, *q;
 
-       while (fp < 0xFFFFF)
-       {
-               isa_memcpy_fromio(buf, fp, 15);
+       /*
+        * no iounmap() for that ioremap(); it would be a no-op, but it's
+        * so early in setup that sucker gets confused into doing what
+        * it shouldn't if we actually call it.
+        */
+       p = ioremap(0xF0000, 0x10000);
+       if (p == NULL)
+               return -1;
+       for (q = p; q < p + 0x10000; q += 16) {
+               memcpy_fromio(buf, q, 15);
                if(memcmp(buf, "_DMI_", 5)==0 && dmi_checksum(buf))
                {
                        u16 num=buf[13]<<8|buf[12];
@@ -129,7 +136,6 @@ static int __init dmi_iterate(void (*decode)(struct dmi_header *))
                        if(dmi_table(base,len, num, decode)==0)
                                return 0;
                }
-               fp+=16;
        }
        return -1;
 }
@@ -214,20 +220,6 @@ static __init __attribute__((unused)) int force_acpi_ht(struct dmi_blacklist *d)
        }
        return 0;
 } 
-
-/*
- * early nForce2 reference BIOS shipped with a
- * bogus ACPI IRQ0 -> pin2 interrupt override -- ignore it
- */
-static __init int ignore_timer_override(struct dmi_blacklist *d)
-{
-       extern int acpi_skip_timer_override;
-       printk(KERN_NOTICE "%s detected: BIOS IRQ0 pin2 override"
-               " will be ignored\n", d->ident);        
-
-       acpi_skip_timer_override = 1;
-       return 0;
-}
 #endif
 
 #ifdef CONFIG_ACPI_PCI
@@ -308,21 +300,6 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
                        MATCH(DMI_PRODUCT_NAME, "HP VISUALIZE NT Workstation"),
                        NO_MATCH, NO_MATCH }},
 
-       { force_acpi_ht, "Compaq ProLiant DL380 G2", {
-                       MATCH(DMI_SYS_VENDOR, "Compaq"),
-                       MATCH(DMI_PRODUCT_NAME, "ProLiant DL380 G2"),
-                       NO_MATCH, NO_MATCH }},
-
-       { force_acpi_ht, "Compaq ProLiant ML530 G2", {
-                       MATCH(DMI_SYS_VENDOR, "Compaq"),
-                       MATCH(DMI_PRODUCT_NAME, "ProLiant ML530 G2"),
-                       NO_MATCH, NO_MATCH }},
-
-       { force_acpi_ht, "Compaq ProLiant ML350 G3", {
-                       MATCH(DMI_SYS_VENDOR, "Compaq"),
-                       MATCH(DMI_PRODUCT_NAME, "ProLiant ML350 G3"),
-                       NO_MATCH, NO_MATCH }},
-
        { force_acpi_ht, "Compaq Workstation W8000", {
                        MATCH(DMI_SYS_VENDOR, "Compaq"),
                        MATCH(DMI_PRODUCT_NAME, "Workstation W8000"),
@@ -368,48 +345,6 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
                        MATCH(DMI_PRODUCT_NAME, "eserver xSeries 440"),
                        NO_MATCH, NO_MATCH }},
 
-       /*
-        * Systems with nForce2 BIOS timer override bug
-        * nVidia claims all nForce have timer on pin0,
-        * and applying this workaround is a NOP on fixed BIOS,
-        * so prospects are good for replacing these entries
-        * with something to key of chipset PCI-ID.
-        */
-       { ignore_timer_override, "Abit NF7-S v2", {
-                       MATCH(DMI_BOARD_VENDOR, "http://www.abit.com.tw/"),
-                       MATCH(DMI_BOARD_NAME, "NF7-S/NF7,NF7-V (nVidia-nForce2)"),
-                       MATCH(DMI_BIOS_VERSION, "6.00 PG"),
-                       MATCH(DMI_BIOS_DATE, "03/24/2004") }},
-
-       { ignore_timer_override, "Asus A7N8X v2", {
-                       MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
-                       MATCH(DMI_BOARD_NAME, "A7N8X2.0"),
-                       MATCH(DMI_BIOS_VERSION, "ASUS A7N8X2.0 Deluxe ACPI BIOS Rev 1007"),
-                       MATCH(DMI_BIOS_DATE, "10/06/2003") }},
-
-       { ignore_timer_override, "Asus A7N8X-X", {
-                       MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
-                       MATCH(DMI_BOARD_NAME, "A7N8X-X"),
-                       MATCH(DMI_BIOS_VERSION, "ASUS A7N8X-X ACPI BIOS Rev 1009"),
-                       MATCH(DMI_BIOS_DATE, "2/3/2004") }},
-
-       { ignore_timer_override, "MSI K7N2-Delta", {
-                       MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
-                       MATCH(DMI_BOARD_NAME, "MS-6570"),
-                       MATCH(DMI_BIOS_VERSION, "6.00 PG"),
-                       MATCH(DMI_BIOS_DATE, "03/29/2004") }},
-
-       { ignore_timer_override, "Shuttle SN41G2", {
-                       MATCH(DMI_BOARD_VENDOR, "Shuttle Inc"),
-                       MATCH(DMI_BOARD_NAME, "FN41"),
-                       MATCH(DMI_BIOS_VERSION, "6.00 PG"),
-                       MATCH(DMI_BIOS_DATE, "01/14/2004") }},
-
-       { ignore_timer_override, "Shuttle AN35N", {
-                       MATCH(DMI_BOARD_VENDOR, "Shuttle Inc"),
-                       MATCH(DMI_BOARD_NAME, "AN35"),
-                       MATCH(DMI_BIOS_VERSION, "6.00 PG"),
-                       MATCH(DMI_BIOS_DATE, "12/05/2003") }},
 #endif // CONFIG_ACPI_BOOT
 
 #ifdef CONFIG_ACPI_PCI