diff options
Diffstat (limited to 'drivers/input/mouse/psmouse-base.c')
-rw-r--r-- | drivers/input/mouse/psmouse-base.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index 019034b21a0b..abb575f2b0c7 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include "synaptics.h" | 24 | #include "synaptics.h" |
25 | #include "logips2pp.h" | 25 | #include "logips2pp.h" |
26 | #include "alps.h" | 26 | #include "alps.h" |
27 | #include "lifebook.h" | ||
27 | 28 | ||
28 | #define DRIVER_DESC "PS/2 mouse driver" | 29 | #define DRIVER_DESC "PS/2 mouse driver" |
29 | 30 | ||
@@ -34,12 +35,12 @@ MODULE_LICENSE("GPL"); | |||
34 | static unsigned int psmouse_max_proto = -1U; | 35 | static unsigned int psmouse_max_proto = -1U; |
35 | static int psmouse_set_maxproto(const char *val, struct kernel_param *kp); | 36 | static int psmouse_set_maxproto(const char *val, struct kernel_param *kp); |
36 | static int psmouse_get_maxproto(char *buffer, struct kernel_param *kp); | 37 | static int psmouse_get_maxproto(char *buffer, struct kernel_param *kp); |
37 | static char *psmouse_proto_abbrev[] = { NULL, "bare", NULL, NULL, NULL, "imps", "exps", NULL, NULL, NULL }; | 38 | static char *psmouse_proto_abbrev[] = { NULL, "bare", NULL, NULL, NULL, "imps", "exps", NULL, NULL, "lifebook" }; |
38 | #define param_check_proto_abbrev(name, p) __param_check(name, p, unsigned int) | 39 | #define param_check_proto_abbrev(name, p) __param_check(name, p, unsigned int) |
39 | #define param_set_proto_abbrev psmouse_set_maxproto | 40 | #define param_set_proto_abbrev psmouse_set_maxproto |
40 | #define param_get_proto_abbrev psmouse_get_maxproto | 41 | #define param_get_proto_abbrev psmouse_get_maxproto |
41 | module_param_named(proto, psmouse_max_proto, proto_abbrev, 0644); | 42 | module_param_named(proto, psmouse_max_proto, proto_abbrev, 0644); |
42 | MODULE_PARM_DESC(proto, "Highest protocol extension to probe (bare, imps, exps, any). Useful for KVM switches."); | 43 | MODULE_PARM_DESC(proto, "Highest protocol extension to probe (bare, imps, exps, lifebook, any). Useful for KVM switches."); |
43 | 44 | ||
44 | static unsigned int psmouse_resolution = 200; | 45 | static unsigned int psmouse_resolution = 200; |
45 | module_param_named(resolution, psmouse_resolution, uint, 0644); | 46 | module_param_named(resolution, psmouse_resolution, uint, 0644); |
@@ -67,7 +68,7 @@ __obsolete_setup("psmouse_smartscroll="); | |||
67 | __obsolete_setup("psmouse_resetafter="); | 68 | __obsolete_setup("psmouse_resetafter="); |
68 | __obsolete_setup("psmouse_rate="); | 69 | __obsolete_setup("psmouse_rate="); |
69 | 70 | ||
70 | static char *psmouse_protocols[] = { "None", "PS/2", "PS2++", "ThinkPS/2", "GenPS/2", "ImPS/2", "ImExPS/2", "SynPS/2", "AlpsPS/2" }; | 71 | static char *psmouse_protocols[] = { "None", "PS/2", "PS2++", "ThinkPS/2", "GenPS/2", "ImPS/2", "ImExPS/2", "SynPS/2", "AlpsPS/2", "LBPS/2" }; |
71 | 72 | ||
72 | /* | 73 | /* |
73 | * psmouse_process_byte() analyzes the PS/2 data stream and reports | 74 | * psmouse_process_byte() analyzes the PS/2 data stream and reports |
@@ -423,6 +424,9 @@ static int psmouse_extensions(struct psmouse *psmouse, | |||
423 | { | 424 | { |
424 | int synaptics_hardware = 0; | 425 | int synaptics_hardware = 0; |
425 | 426 | ||
427 | if (lifebook_detect(psmouse, max_proto, set_properties) == 0) | ||
428 | return PSMOUSE_LIFEBOOK; | ||
429 | |||
426 | /* | 430 | /* |
427 | * Try Kensington ThinkingMouse (we try first, because synaptics probe | 431 | * Try Kensington ThinkingMouse (we try first, because synaptics probe |
428 | * upsets the thinkingmouse). | 432 | * upsets the thinkingmouse). |
@@ -575,6 +579,8 @@ static void psmouse_set_rate(struct psmouse *psmouse, unsigned int rate) | |||
575 | 579 | ||
576 | static void psmouse_initialize(struct psmouse *psmouse) | 580 | static void psmouse_initialize(struct psmouse *psmouse) |
577 | { | 581 | { |
582 | if (psmouse->type==PSMOUSE_LIFEBOOK) | ||
583 | return; | ||
578 | /* | 584 | /* |
579 | * We set the mouse into streaming mode. | 585 | * We set the mouse into streaming mode. |
580 | */ | 586 | */ |