Loading drivers/input/mouse/lifebook.c +27 −18 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse, struct pt_re return PSMOUSE_FULL_PACKET; } static int lifebook_initialize(struct psmouse *psmouse) static int lifebook_absolute_mode(struct psmouse *psmouse) { struct ps2dev *ps2dev = &psmouse->ps2dev; unsigned char param; Loading @@ -87,15 +87,24 @@ static void lifebook_disconnect(struct psmouse *psmouse) psmouse_reset(psmouse); } int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto, int set_properties) int lifebook_detect(struct psmouse *psmouse, int set_properties) { if (!dmi_check_system(lifebook_dmi_table) && max_proto != PSMOUSE_LIFEBOOK) if (!dmi_check_system(lifebook_dmi_table)) return -1; if (set_properties) { psmouse->vendor = "Fujitsu Lifebook"; psmouse->name = "TouchScreen"; psmouse->vendor = "Fujitsu"; psmouse->name = "Lifebook TouchScreen"; } return 0; } int lifebook_init(struct psmouse *psmouse) { if (lifebook_absolute_mode(psmouse)) return -1; psmouse->dev.evbit[0] = BIT(EV_ABS) | BIT(EV_KEY) | BIT(EV_REL); psmouse->dev.keybit[LONG(BTN_LEFT)] = BIT(BTN_LEFT) | BIT(BTN_MIDDLE) | BIT(BTN_RIGHT); psmouse->dev.keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH); Loading @@ -105,9 +114,9 @@ int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto, psmouse->protocol_handler = lifebook_process_byte; psmouse->disconnect = lifebook_disconnect; psmouse->reconnect = lifebook_initialize; psmouse->reconnect = lifebook_absolute_mode; psmouse->pktsize = 3; } return lifebook_initialize(psmouse); return 0; } drivers/input/mouse/lifebook.h +2 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ #ifndef _LIFEBOOK_H #define _LIFEBOOK_H int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto, int set_properties); int lifebook_detect(struct psmouse *psmouse, int set_properties); int lifebook_init(struct psmouse *psmouse); #endif drivers/input/mouse/psmouse-base.c +12 −2 Original line number Diff line number Diff line Loading @@ -424,8 +424,18 @@ static int psmouse_extensions(struct psmouse *psmouse, { int synaptics_hardware = 0; if (lifebook_detect(psmouse, max_proto, set_properties) == 0) /* * We always check for lifebook because it does not disturb mouse * (it only checks DMI information). */ if (lifebook_detect(psmouse, set_properties) == 0 || max_proto == PSMOUSE_LIFEBOOK) { if (max_proto > PSMOUSE_IMEX) { if (!set_properties || lifebook_init(psmouse) == 0) return PSMOUSE_LIFEBOOK; } } /* * Try Kensington ThinkingMouse (we try first, because synaptics probe Loading Loading
drivers/input/mouse/lifebook.c +27 −18 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse, struct pt_re return PSMOUSE_FULL_PACKET; } static int lifebook_initialize(struct psmouse *psmouse) static int lifebook_absolute_mode(struct psmouse *psmouse) { struct ps2dev *ps2dev = &psmouse->ps2dev; unsigned char param; Loading @@ -87,15 +87,24 @@ static void lifebook_disconnect(struct psmouse *psmouse) psmouse_reset(psmouse); } int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto, int set_properties) int lifebook_detect(struct psmouse *psmouse, int set_properties) { if (!dmi_check_system(lifebook_dmi_table) && max_proto != PSMOUSE_LIFEBOOK) if (!dmi_check_system(lifebook_dmi_table)) return -1; if (set_properties) { psmouse->vendor = "Fujitsu Lifebook"; psmouse->name = "TouchScreen"; psmouse->vendor = "Fujitsu"; psmouse->name = "Lifebook TouchScreen"; } return 0; } int lifebook_init(struct psmouse *psmouse) { if (lifebook_absolute_mode(psmouse)) return -1; psmouse->dev.evbit[0] = BIT(EV_ABS) | BIT(EV_KEY) | BIT(EV_REL); psmouse->dev.keybit[LONG(BTN_LEFT)] = BIT(BTN_LEFT) | BIT(BTN_MIDDLE) | BIT(BTN_RIGHT); psmouse->dev.keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH); Loading @@ -105,9 +114,9 @@ int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto, psmouse->protocol_handler = lifebook_process_byte; psmouse->disconnect = lifebook_disconnect; psmouse->reconnect = lifebook_initialize; psmouse->reconnect = lifebook_absolute_mode; psmouse->pktsize = 3; } return lifebook_initialize(psmouse); return 0; }
drivers/input/mouse/lifebook.h +2 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ #ifndef _LIFEBOOK_H #define _LIFEBOOK_H int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto, int set_properties); int lifebook_detect(struct psmouse *psmouse, int set_properties); int lifebook_init(struct psmouse *psmouse); #endif
drivers/input/mouse/psmouse-base.c +12 −2 Original line number Diff line number Diff line Loading @@ -424,8 +424,18 @@ static int psmouse_extensions(struct psmouse *psmouse, { int synaptics_hardware = 0; if (lifebook_detect(psmouse, max_proto, set_properties) == 0) /* * We always check for lifebook because it does not disturb mouse * (it only checks DMI information). */ if (lifebook_detect(psmouse, set_properties) == 0 || max_proto == PSMOUSE_LIFEBOOK) { if (max_proto > PSMOUSE_IMEX) { if (!set_properties || lifebook_init(psmouse) == 0) return PSMOUSE_LIFEBOOK; } } /* * Try Kensington ThinkingMouse (we try first, because synaptics probe Loading