diff options
| author | Dmitry Torokhov <dtor@insightbb.com> | 2007-04-12 01:36:25 -0400 |
|---|---|---|
| committer | Dmitry Torokhov <dtor@insightbb.com> | 2007-04-12 01:36:25 -0400 |
| commit | e7afcd1bf784dde4cd6c6efbf9a4709626cc8e08 (patch) | |
| tree | f4a4b85ced01f564e6a90ae90f329eab4b161069 | |
| parent | d0a0515fc30b55d4b09395d44762c5f41d6d02d5 (diff) | |
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 <dtor@mail.ru>
| -rw-r--r-- | drivers/input/mouse/lifebook.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/input/mouse/lifebook.c b/drivers/input/mouse/lifebook.c index 29542f0631cb..28d9770f5eb2 100644 --- a/drivers/input/mouse/lifebook.c +++ b/drivers/input/mouse/lifebook.c | |||
| @@ -20,6 +20,14 @@ | |||
| 20 | #include "psmouse.h" | 20 | #include "psmouse.h" |
| 21 | #include "lifebook.h" | 21 | #include "lifebook.h" |
| 22 | 22 | ||
| 23 | static const char *desired_serio_phys; | ||
| 24 | |||
| 25 | static int lifebook_set_serio_phys(struct dmi_system_id *d) | ||
| 26 | { | ||
| 27 | desired_serio_phys = d->driver_data; | ||
| 28 | return 0; | ||
| 29 | } | ||
| 30 | |||
| 23 | static struct dmi_system_id lifebook_dmi_table[] = { | 31 | static struct dmi_system_id lifebook_dmi_table[] = { |
| 24 | { | 32 | { |
| 25 | .ident = "FLORA-ie 55mi", | 33 | .ident = "FLORA-ie 55mi", |
| @@ -56,6 +64,8 @@ static struct dmi_system_id lifebook_dmi_table[] = { | |||
| 56 | .matches = { | 64 | .matches = { |
| 57 | DMI_MATCH(DMI_PRODUCT_NAME, "CF-18"), | 65 | DMI_MATCH(DMI_PRODUCT_NAME, "CF-18"), |
| 58 | }, | 66 | }, |
| 67 | .callback = lifebook_set_serio_phys, | ||
| 68 | .driver_data = "isa0060/serio3", | ||
| 59 | }, | 69 | }, |
| 60 | { | 70 | { |
| 61 | .ident = "Lifebook B142", | 71 | .ident = "Lifebook B142", |
| @@ -138,6 +148,10 @@ int lifebook_detect(struct psmouse *psmouse, int set_properties) | |||
| 138 | if (!dmi_check_system(lifebook_dmi_table)) | 148 | if (!dmi_check_system(lifebook_dmi_table)) |
| 139 | return -1; | 149 | return -1; |
| 140 | 150 | ||
| 151 | if (desired_serio_phys && | ||
| 152 | strcmp(psmouse->ps2dev.serio->phys, desired_serio_phys)) | ||
| 153 | return -1; | ||
| 154 | |||
| 141 | if (set_properties) { | 155 | if (set_properties) { |
| 142 | psmouse->vendor = "Fujitsu"; | 156 | psmouse->vendor = "Fujitsu"; |
| 143 | psmouse->name = "Lifebook TouchScreen"; | 157 | psmouse->name = "Lifebook TouchScreen"; |
