Subject: lifebook - work properly on Panasonic CF-18 Input: lifebook - work properly on Panasonic CF-18 Panasonic CF18 has an active multiplexing controller with touchscreen connected to one port and a touchpad to another. Use "phys" from serio port to activate lifebook protoocol only on the port that has touchscreen connected to it. Signed-off-by: Dmitry Torokhov --- drivers/input/mouse/lifebook.c | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+) Index: 2.6.18/drivers/input/mouse/lifebook.c =================================================================== --- 2.6.18.orig/drivers/input/mouse/lifebook.c +++ 2.6.18/drivers/input/mouse/lifebook.c @@ -20,13 +20,30 @@ #include "psmouse.h" #include "lifebook.h" +static const char *desired_serio_phys; + +static int lifebook_set_serio_phys(struct dmi_system_id *d) +{ + desired_serio_phys = d->driver_data; + return 0; +} + static struct dmi_system_id lifebook_dmi_table[] = { { .ident = "Lifebook B", .matches = { DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK B Series"), }, + }, + { + .ident = "CF-18", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "CF-18"), + }, + .callback = lifebook_set_serio_phys, + .driver_data = "isa0060/serio3", + }, { .ident = "Lifebook B142", .matches = { @@ -110,6 +127,10 @@ int lifebook_detect(struct psmouse *psmo if (!dmi_check_system(lifebook_dmi_table)) return -1; + if (desired_serio_phys && + strcmp(psmouse->ps2dev.serio->phys, desired_serio_phys)) + return -1; + if (set_properties) { psmouse->vendor = "Fujitsu"; psmouse->name = "Lifebook TouchScreen";