|
@@ -63,7 +63,7 @@ static inline void i8042_write_command(int val)
|
|
outb(val, I8042_COMMAND_REG);
|
|
outb(val, I8042_COMMAND_REG);
|
|
}
|
|
}
|
|
|
|
|
|
-#if defined(__i386__) || defined(__x86_64__)
|
|
|
|
|
|
+#ifdef CONFIG_X86
|
|
|
|
|
|
#include <linux/dmi.h>
|
|
#include <linux/dmi.h>
|
|
|
|
|
|
@@ -287,14 +287,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
|
|
#endif
|
|
|
|
|
|
-#ifdef CONFIG_X86
|
|
|
|
-
|
|
|
|
-#include <linux/dmi.h>
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Some Wistron based laptops need us to explicitly enable the 'Dritek
|
|
* Some Wistron based laptops need us to explicitly enable the 'Dritek
|
|
* keyboard extension' to make their extra keys start generating scancodes.
|
|
* keyboard extension' to make their extra keys start generating scancodes.
|
|
@@ -342,7 +347,6 @@ static struct dmi_system_id __initdata i8042_dmi_dritek_table[] = {
|
|
|
|
|
|
#endif /* CONFIG_X86 */
|
|
#endif /* CONFIG_X86 */
|
|
|
|
|
|
-
|
|
|
|
#ifdef CONFIG_PNP
|
|
#ifdef CONFIG_PNP
|
|
#include <linux/pnp.h>
|
|
#include <linux/pnp.h>
|
|
|
|
|
|
@@ -452,6 +456,11 @@ static int __init i8042_pnp_init(void)
|
|
int pnp_data_busted = 0;
|
|
int pnp_data_busted = 0;
|
|
int err;
|
|
int err;
|
|
|
|
|
|
|
|
+#ifdef CONFIG_X86
|
|
|
|
+ if (dmi_check_system(i8042_dmi_nopnp_table))
|
|
|
|
+ i8042_nopnp = 1;
|
|
|
|
+#endif
|
|
|
|
+
|
|
if (i8042_nopnp) {
|
|
if (i8042_nopnp) {
|
|
printk(KERN_INFO "i8042: PNP detection disabled\n");
|
|
printk(KERN_INFO "i8042: PNP detection disabled\n");
|
|
return 0;
|
|
return 0;
|
|
@@ -577,15 +586,13 @@ static int __init i8042_platform_init(void)
|
|
i8042_reset = 1;
|
|
i8042_reset = 1;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-#if defined(__i386__) || defined(__x86_64__)
|
|
|
|
|
|
+#ifdef CONFIG_X86
|
|
if (dmi_check_system(i8042_dmi_noloop_table))
|
|
if (dmi_check_system(i8042_dmi_noloop_table))
|
|
i8042_noloop = 1;
|
|
i8042_noloop = 1;
|
|
|
|
|
|
if (dmi_check_system(i8042_dmi_nomux_table))
|
|
if (dmi_check_system(i8042_dmi_nomux_table))
|
|
i8042_nomux = 1;
|
|
i8042_nomux = 1;
|
|
-#endif
|
|
|
|
|
|
|
|
-#ifdef CONFIG_X86
|
|
|
|
if (dmi_check_system(i8042_dmi_dritek_table))
|
|
if (dmi_check_system(i8042_dmi_dritek_table))
|
|
i8042_dritek = 1;
|
|
i8042_dritek = 1;
|
|
#endif /* CONFIG_X86 */
|
|
#endif /* CONFIG_X86 */
|