Input: psmouse - add support for Elantech touchpads
This is version 5 of the driver. Relative mode support has been dropped (users wishing to use touchpad in relative mode can use standard PS/2 protocol emulation done in hardware). The driver supports both original version of Elantech protocol and the newer one used by touchpads installed in EeePC. Signed-off-by: Arjan Opmeer <arjan@opmeer.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
committed by
Dmitry Torokhov
parent
2c6f2cb83b
commit
2a0bd75e5e
@@ -29,6 +29,7 @@
|
||||
#include "lifebook.h"
|
||||
#include "trackpoint.h"
|
||||
#include "touchkit_ps2.h"
|
||||
#include "elantech.h"
|
||||
|
||||
#define DRIVER_DESC "PS/2 mouse driver"
|
||||
|
||||
@@ -650,6 +651,19 @@ static int psmouse_extensions(struct psmouse *psmouse,
|
||||
max_proto = PSMOUSE_IMEX;
|
||||
}
|
||||
|
||||
/*
|
||||
* Try Elantech touchpad.
|
||||
*/
|
||||
if (max_proto > PSMOUSE_IMEX &&
|
||||
elantech_detect(psmouse, set_properties) == 0) {
|
||||
if (!set_properties || elantech_init(psmouse) == 0)
|
||||
return PSMOUSE_ELANTECH;
|
||||
/*
|
||||
* Init failed, try basic relative protocols
|
||||
*/
|
||||
max_proto = PSMOUSE_IMEX;
|
||||
}
|
||||
|
||||
if (max_proto > PSMOUSE_IMEX) {
|
||||
if (genius_detect(psmouse, set_properties) == 0)
|
||||
return PSMOUSE_GENPS;
|
||||
@@ -789,6 +803,15 @@ static const struct psmouse_protocol psmouse_protocols[] = {
|
||||
.detect = hgpk_detect,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_MOUSE_PS2_ELANTECH
|
||||
{
|
||||
.type = PSMOUSE_ELANTECH,
|
||||
.name = "ETPS/2",
|
||||
.alias = "elantech",
|
||||
.detect = elantech_detect,
|
||||
.init = elantech_init,
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.type = PSMOUSE_CORTRON,
|
||||
.name = "CortronPS/2",
|
||||
|
Reference in New Issue
Block a user