x86, UV: Complete IRQ interrupt migration in arch_enable_uv_irq()
[safe/jmp/linux-2.6] / arch / x86 / kernel / io_delay.c
index f052e34..a979b5b 100644 (file)
@@ -7,13 +7,12 @@
  */
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/init.h>
 #include <linux/delay.h>
+#include <linux/init.h>
 #include <linux/dmi.h>
-#include <asm/io.h>
+#include <linux/io.h>
 
 int io_delay_type __read_mostly = CONFIG_DEFAULT_IO_DELAY_TYPE;
-EXPORT_SYMBOL_GPL(io_delay_type);
 
 static int __initdata io_delay_override;
 
@@ -48,8 +47,7 @@ EXPORT_SYMBOL(native_io_delay);
 static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id)
 {
        if (io_delay_type == CONFIG_IO_DELAY_TYPE_0X80) {
-               printk(KERN_NOTICE "%s: using 0xed I/O delay port\n",
-                       id->ident);
+               pr_notice("%s: using 0xed I/O delay port\n", id->ident);
                io_delay_type = CONFIG_IO_DELAY_TYPE_0XED;
        }
 
@@ -63,10 +61,42 @@ static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id)
 static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = {
        {
                .callback       = dmi_io_delay_0xed_port,
+               .ident          = "Compaq Presario V6000",
+               .matches        = {
+                       DMI_MATCH(DMI_BOARD_VENDOR,     "Quanta"),
+                       DMI_MATCH(DMI_BOARD_NAME,       "30B7")
+               }
+       },
+       {
+               .callback       = dmi_io_delay_0xed_port,
                .ident          = "HP Pavilion dv9000z",
                .matches        = {
-                       DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
-                       DMI_MATCH(DMI_BOARD_NAME, "30B9")
+                       DMI_MATCH(DMI_BOARD_VENDOR,     "Quanta"),
+                       DMI_MATCH(DMI_BOARD_NAME,       "30B9")
+               }
+       },
+       {
+               .callback       = dmi_io_delay_0xed_port,
+               .ident          = "HP Pavilion dv6000",
+               .matches        = {
+                       DMI_MATCH(DMI_BOARD_VENDOR,     "Quanta"),
+                       DMI_MATCH(DMI_BOARD_NAME,       "30B8")
+               }
+       },
+       {
+               .callback       = dmi_io_delay_0xed_port,
+               .ident          = "HP Pavilion tx1000",
+               .matches        = {
+                       DMI_MATCH(DMI_BOARD_VENDOR,     "Quanta"),
+                       DMI_MATCH(DMI_BOARD_NAME,       "30BF")
+               }
+       },
+       {
+               .callback       = dmi_io_delay_0xed_port,
+               .ident          = "Presario F700",
+               .matches        = {
+                       DMI_MATCH(DMI_BOARD_VENDOR,     "Quanta"),
+                       DMI_MATCH(DMI_BOARD_NAME,       "30D3")
                }
        },
        { }
@@ -80,6 +110,9 @@ void __init io_delay_init(void)
 
 static int __init io_delay_param(char *s)
 {
+       if (!s)
+               return -EINVAL;
+
        if (!strcmp(s, "0x80"))
                io_delay_type = CONFIG_IO_DELAY_TYPE_0X80;
        else if (!strcmp(s, "0xed"))