outb(val, I8042_COMMAND_REG);
 }
 
-#if defined(__i386__) || defined(__x86_64__)
+#ifdef CONFIG_X86
 
 #include <linux/dmi.h>
 
        { }
 };
 
-
-
+#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.
 
 #endif /* CONFIG_X86 */
 
-
 #ifdef CONFIG_PNP
 #include <linux/pnp.h>
 
        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;
         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 */