diff options
author | Stephen Evanchik <evanchsa@gmail.com> | 2005-08-08 02:26:18 -0400 |
---|---|---|
committer | Dmitry Torokhov <dtor_core@ameritech.net> | 2005-08-08 02:26:18 -0400 |
commit | 541e316aed6f7d6efeb427a88645c2a8f61418d6 (patch) | |
tree | 2283bae66058470f24f47240e342a032d939ff89 /drivers/input/mouse/psmouse-base.c | |
parent | 6fc32179de9e14c542e0b1760e412bc670611c53 (diff) |
Input: psmouse - add support for IBM TrackPoint devices.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/mouse/psmouse-base.c')
-rw-r--r-- | drivers/input/mouse/psmouse-base.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index 2bb2fe78bdca..b3508276785f 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include "logips2pp.h" | 25 | #include "logips2pp.h" |
26 | #include "alps.h" | 26 | #include "alps.h" |
27 | #include "lifebook.h" | 27 | #include "lifebook.h" |
28 | #include "trackpoint.h" | ||
28 | 29 | ||
29 | #define DRIVER_DESC "PS/2 mouse driver" | 30 | #define DRIVER_DESC "PS/2 mouse driver" |
30 | 31 | ||
@@ -520,6 +521,12 @@ static int psmouse_extensions(struct psmouse *psmouse, | |||
520 | return PSMOUSE_IMPS; | 521 | return PSMOUSE_IMPS; |
521 | 522 | ||
522 | /* | 523 | /* |
524 | * Try to initialize the IBM TrackPoint | ||
525 | */ | ||
526 | if (max_proto > PSMOUSE_IMEX && trackpoint_detect(psmouse, set_properties) == 0) | ||
527 | return PSMOUSE_TRACKPOINT; | ||
528 | |||
529 | /* | ||
523 | * Okay, all failed, we have a standard mouse here. The number of the buttons | 530 | * Okay, all failed, we have a standard mouse here. The number of the buttons |
524 | * is still a question, though. We assume 3. | 531 | * is still a question, though. We assume 3. |
525 | */ | 532 | */ |
@@ -600,6 +607,12 @@ static struct psmouse_protocol psmouse_protocols[] = { | |||
600 | .init = lifebook_init, | 607 | .init = lifebook_init, |
601 | }, | 608 | }, |
602 | { | 609 | { |
610 | .type = PSMOUSE_TRACKPOINT, | ||
611 | .name = "TPPS/2", | ||
612 | .alias = "trackpoint", | ||
613 | .detect = trackpoint_detect, | ||
614 | }, | ||
615 | { | ||
603 | .type = PSMOUSE_AUTO, | 616 | .type = PSMOUSE_AUTO, |
604 | .name = "auto", | 617 | .name = "auto", |
605 | .alias = "any", | 618 | .alias = "any", |
@@ -1234,7 +1247,7 @@ static int psmouse_set_maxproto(const char *val, struct kernel_param *kp) | |||
1234 | 1247 | ||
1235 | *((unsigned int *)kp->arg) = proto->type; | 1248 | *((unsigned int *)kp->arg) = proto->type; |
1236 | 1249 | ||
1237 | return 0; \ | 1250 | return 0; |
1238 | } | 1251 | } |
1239 | 1252 | ||
1240 | static int psmouse_get_maxproto(char *buffer, struct kernel_param *kp) | 1253 | static int psmouse_get_maxproto(char *buffer, struct kernel_param *kp) |