]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Input: i8042 - add Intel D845PESV to nopnp list
authorJiri Kosina <jkosina@suse.cz>
Wed, 28 May 2008 05:10:52 +0000 (01:10 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 6 Aug 2008 16:03:18 +0000 (09:03 -0700)
commit c3a34f4390396a4bede3f8b7bcc5153f50b974bb upstream

This patch introduces i8042_dmi_nopnp_table to make it possible to perform
DMI matches for systems that need 'i8042.nopnp' to work correctly, and
introduces such an entry for Intel D845PESV -- this system doesn't
detect PS2 mouse reliably without this option, as reported by Robert
Lewis.

[dtor@mail.ru - make it compile if CONFIG_PNP is off - reported
 by Randy Dunlap]

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/input/serio/i8042-x86ia64io.h

index 78eb7841174cbbbe7a1a2d8b88941aa195d76bbf..9818359d26e26886e82828a5ae39f44252f0c272 100644 (file)
@@ -63,7 +63,7 @@ static inline void i8042_write_command(int val)
        outb(val, I8042_COMMAND_REG);
 }
 
-#if defined(__i386__) || defined(__x86_64__)
+#ifdef CONFIG_X86
 
 #include <linux/dmi.h>
 
@@ -294,14 +294,19 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
        { }
 };
 
-
-
+#ifdef CONFIG_PNP
+static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = {
+       {
+               .ident = "Intel MBO Desktop D845PESV",
+               .matches = {
+                       DMI_MATCH(DMI_BOARD_NAME, "D845PESV"),
+                       DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"),
+               },
+       },
+       { }
+};
 #endif
 
-#ifdef CONFIG_X86
-
-#include <linux/dmi.h>
-
 /*
  * Some Wistron based laptops need us to explicitly enable the 'Dritek
  * keyboard extension' to make their extra keys start generating scancodes.
@@ -356,7 +361,6 @@ static struct dmi_system_id __initdata i8042_dmi_dritek_table[] = {
 
 #endif /* CONFIG_X86 */
 
-
 #ifdef CONFIG_PNP
 #include <linux/pnp.h>
 
@@ -466,6 +470,11 @@ static int __init i8042_pnp_init(void)
        int pnp_data_busted = 0;
        int err;
 
+#ifdef CONFIG_X86
+       if (dmi_check_system(i8042_dmi_nopnp_table))
+               i8042_nopnp = 1;
+#endif
+
        if (i8042_nopnp) {
                printk(KERN_INFO "i8042: PNP detection disabled\n");
                return 0;
@@ -591,15 +600,13 @@ static int __init i8042_platform_init(void)
         i8042_reset = 1;
 #endif
 
-#if defined(__i386__) || defined(__x86_64__)
+#ifdef CONFIG_X86
        if (dmi_check_system(i8042_dmi_noloop_table))
                i8042_noloop = 1;
 
        if (dmi_check_system(i8042_dmi_nomux_table))
                i8042_nomux = 1;
-#endif
 
-#ifdef CONFIG_X86
        if (dmi_check_system(i8042_dmi_dritek_table))
                i8042_dritek = 1;
 #endif /* CONFIG_X86 */