Input: psmouse - add OLPC touchpad driver
This adds support for OLPC's touchpad. It has lots of neat features, none of which are enabled because the hardware is too buggy. Instead, we use it like a normal touchpad, but with a number of workarounds in place to deal with the frequent hardware spasms. Humidity changes, sweat, tinfoil underwear, plugging in AC, drinks, evil felines.. All tend to cause the touchpad to freak out. Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
committed by
Dmitry Torokhov
parent
68d482214b
commit
df08ef27a7
@@ -25,6 +25,7 @@
|
||||
#include "synaptics.h"
|
||||
#include "logips2pp.h"
|
||||
#include "alps.h"
|
||||
#include "hgpk.h"
|
||||
#include "lifebook.h"
|
||||
#include "trackpoint.h"
|
||||
#include "touchkit_ps2.h"
|
||||
@@ -636,8 +637,20 @@ static int psmouse_extensions(struct psmouse *psmouse,
|
||||
}
|
||||
}
|
||||
|
||||
if (max_proto > PSMOUSE_IMEX) {
|
||||
/*
|
||||
* Try OLPC HGPK touchpad.
|
||||
*/
|
||||
if (max_proto > PSMOUSE_IMEX &&
|
||||
hgpk_detect(psmouse, set_properties) == 0) {
|
||||
if (!set_properties || hgpk_init(psmouse) == 0)
|
||||
return PSMOUSE_HGPK;
|
||||
/*
|
||||
* 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;
|
||||
|
||||
@@ -767,6 +780,14 @@ static const struct psmouse_protocol psmouse_protocols[] = {
|
||||
.alias = "touchkit",
|
||||
.detect = touchkit_ps2_detect,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_MOUSE_PS2_OLPC
|
||||
{
|
||||
.type = PSMOUSE_HGPK,
|
||||
.name = "OLPC HGPK",
|
||||
.alias = "hgpk",
|
||||
.detect = hgpk_detect,
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.type = PSMOUSE_CORTRON,
|
||||
|
Reference in New Issue
Block a user