Re: [patch 2/2] input: add a DMI table for the i8042.reset option;make MSI Wind U-100 work

From: Andrew Morton
Date: Thu Feb 05 2009 - 19:22:42 EST


On Wed, 4 Feb 2009 19:17:28 -0800
Arjan van de Ven <arjan@xxxxxxxxxxxxx> wrote:

> There are several DMI tables in the i8042 (keyboard) driver already,
> but not one for the i8042.reset option. This patch adds such an option
> (which also sets the nonfatal flag so that if the reset fails, the keyboard
> still works).
>
> Two users for this table are added as well, the MSI Wind U-100 and the
> LG X110. The MSI Wind also needs to be in the "don't trust the pnp data"
> for the touchpad to work on my machine.

x86_64 allnoconfig:

drivers/input/serio/i8042-x86ia64io.h:458: warning: 'i8042_dmi_reset_table' defined but not used


From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>

drivers/input/serio/i8042-x86ia64io.h:458: warning: 'i8042_dmi_reset_table' defined but not used

Fix this by moving both i8042_dmi_nopnp_tablep[] and i8042_dmi_reset_table[]
into a section which requires CONFIG_PNP and CONFIG_X86. Give their
usage sites the same treatment.

Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Cc: Dmitry Torokhov <dtor@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

drivers/input/serio/i8042-x86ia64io.h | 79 +++++++++++-------------
1 file changed, 39 insertions(+), 40 deletions(-)

diff -puN drivers/input/serio/i8042-x86ia64io.h~input-add-a-dmi-table-for-the-i8042reset-option-make-msi-wind-u-100-work-fix drivers/input/serio/i8042-x86ia64io.h
--- a/drivers/input/serio/i8042-x86ia64io.h~input-add-a-dmi-table-for-the-i8042reset-option-make-msi-wind-u-100-work-fix
+++ a/drivers/input/serio/i8042-x86ia64io.h
@@ -369,26 +369,6 @@ static struct dmi_system_id __initdata i
{ }
};

-#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"),
- },
- },
- {
- .ident = "MSI Wind U-100",
- .matches = {
- DMI_MATCH(DMI_BOARD_NAME, "U-100"),
- DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
- },
- },
- { }
-};
-#endif
-
/*
* Some Wistron based laptops need us to explicitly enable the 'Dritek
* keyboard extension' to make their extra keys start generating scancodes.
@@ -455,25 +435,6 @@ static struct dmi_system_id __initdata i
{ }
};

-static struct dmi_system_id __initdata i8042_dmi_reset_table[] = {
- {
- .ident = "MSI Wind U-100",
- .matches = {
- DMI_MATCH(DMI_BOARD_NAME, "U-100"),
- DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
- },
- },
- {
- .ident = "LG Electronics X110",
- .matches = {
- DMI_MATCH(DMI_BOARD_NAME, "X110"),
- DMI_MATCH(DMI_BOARD_VENDOR, "LG Electronics Inc."),
- },
- },
- { }
-};
-
-
#endif /* CONFIG_X86 */

#ifdef CONFIG_PNP
@@ -492,6 +453,44 @@ static int i8042_pnp_aux_irq;
static char i8042_pnp_kbd_name[32];
static char i8042_pnp_aux_name[32];

+#ifdef CONFIG_X86
+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"),
+ },
+ },
+ {
+ .ident = "MSI Wind U-100",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_NAME, "U-100"),
+ DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
+ },
+ },
+ { }
+};
+
+static struct dmi_system_id __initdata i8042_dmi_reset_table[] = {
+ {
+ .ident = "MSI Wind U-100",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_NAME, "U-100"),
+ DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
+ },
+ },
+ {
+ .ident = "LG Electronics X110",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_NAME, "X110"),
+ DMI_MATCH(DMI_BOARD_VENDOR, "LG Electronics Inc."),
+ },
+ },
+ { }
+};
+#endif
+
static int i8042_pnp_kbd_probe(struct pnp_dev *dev, const struct pnp_device_id *did)
{
if (pnp_port_valid(dev, 0) && pnp_port_len(dev, 0) == 1)
@@ -588,12 +587,12 @@ static int __init i8042_pnp_init(void)
#ifdef CONFIG_X86
if (dmi_check_system(i8042_dmi_nopnp_table))
i8042_nopnp = 1;
-#endif

if (dmi_check_system(i8042_dmi_reset_table)) {
i8042_reset = 1;
i8042_nonfatal = 1;
}
+#endif

if (i8042_nopnp) {
printk(KERN_INFO "i8042: PNP detection disabled\n");
_

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/