mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
Input: lifebook - adjust initialization routines to be in line with
the rest of protocols in preparation to dynamic protocol switching. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
14e9414396
commit
a15d60f867
@ -63,7 +63,7 @@ static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse, struct pt_re
|
|||||||
return PSMOUSE_FULL_PACKET;
|
return PSMOUSE_FULL_PACKET;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int lifebook_initialize(struct psmouse *psmouse)
|
static int lifebook_absolute_mode(struct psmouse *psmouse)
|
||||||
{
|
{
|
||||||
struct ps2dev *ps2dev = &psmouse->ps2dev;
|
struct ps2dev *ps2dev = &psmouse->ps2dev;
|
||||||
unsigned char param;
|
unsigned char param;
|
||||||
@ -87,27 +87,36 @@ static void lifebook_disconnect(struct psmouse *psmouse)
|
|||||||
psmouse_reset(psmouse);
|
psmouse_reset(psmouse);
|
||||||
}
|
}
|
||||||
|
|
||||||
int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto,
|
int lifebook_detect(struct psmouse *psmouse, int set_properties)
|
||||||
int set_properties)
|
|
||||||
{
|
{
|
||||||
if (!dmi_check_system(lifebook_dmi_table) && max_proto != PSMOUSE_LIFEBOOK)
|
if (!dmi_check_system(lifebook_dmi_table))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (set_properties) {
|
if (set_properties) {
|
||||||
psmouse->vendor = "Fujitsu Lifebook";
|
psmouse->vendor = "Fujitsu";
|
||||||
psmouse->name = "TouchScreen";
|
psmouse->name = "Lifebook TouchScreen";
|
||||||
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);
|
|
||||||
psmouse->dev.relbit[0] = BIT(REL_X) | BIT(REL_Y);
|
|
||||||
input_set_abs_params(&psmouse->dev, ABS_X, 0, 1024, 0, 0);
|
|
||||||
input_set_abs_params(&psmouse->dev, ABS_Y, 0, 1024, 0, 0);
|
|
||||||
|
|
||||||
psmouse->protocol_handler = lifebook_process_byte;
|
|
||||||
psmouse->disconnect = lifebook_disconnect;
|
|
||||||
psmouse->reconnect = lifebook_initialize;
|
|
||||||
psmouse->pktsize = 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return lifebook_initialize(psmouse);
|
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);
|
||||||
|
psmouse->dev.relbit[0] = BIT(REL_X) | BIT(REL_Y);
|
||||||
|
input_set_abs_params(&psmouse->dev, ABS_X, 0, 1024, 0, 0);
|
||||||
|
input_set_abs_params(&psmouse->dev, ABS_Y, 0, 1024, 0, 0);
|
||||||
|
|
||||||
|
psmouse->protocol_handler = lifebook_process_byte;
|
||||||
|
psmouse->disconnect = lifebook_disconnect;
|
||||||
|
psmouse->reconnect = lifebook_absolute_mode;
|
||||||
|
psmouse->pktsize = 3;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#ifndef _LIFEBOOK_H
|
#ifndef _LIFEBOOK_H
|
||||||
#define _LIFEBOOK_H
|
#define _LIFEBOOK_H
|
||||||
|
|
||||||
int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto,
|
int lifebook_detect(struct psmouse *psmouse, int set_properties);
|
||||||
int set_properties);
|
int lifebook_init(struct psmouse *psmouse);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -424,8 +424,18 @@ static int psmouse_extensions(struct psmouse *psmouse,
|
|||||||
{
|
{
|
||||||
int synaptics_hardware = 0;
|
int synaptics_hardware = 0;
|
||||||
|
|
||||||
if (lifebook_detect(psmouse, max_proto, set_properties) == 0)
|
/*
|
||||||
return PSMOUSE_LIFEBOOK;
|
* 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
|
* Try Kensington ThinkingMouse (we try first, because synaptics probe
|
||||||
|
Loading…
x
Reference in New Issue
Block a user