Input: elantech - add support for SMBus devices
Many of the Elantech devices are connected through PS/2 and a different bus (SMBus or plain I2C). To not break any existing device, we only enable SMBus based on a module parameter. If some laptops require the quirk to be set, we will have to rely on a list of PNPIds or MDI matching to individually expose those hardware over SMBus. the parameter mentioned above is elantech_smbus from the psmouse module. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Acked-by: KT Liao <kt.liao@emc.com.tw> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:

committed by
Dmitry Torokhov

parent
80212ed743
commit
21c48dbde0
@@ -856,7 +856,17 @@ static const struct psmouse_protocol psmouse_protocols[] = {
|
||||
.name = "ETPS/2",
|
||||
.alias = "elantech",
|
||||
.detect = elantech_detect,
|
||||
.init = elantech_init,
|
||||
.init = elantech_init_ps2,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_MOUSE_PS2_ELANTECH_SMBUS
|
||||
{
|
||||
.type = PSMOUSE_ELANTECH_SMBUS,
|
||||
.name = "ETSMBus",
|
||||
.alias = "elantech-smbus",
|
||||
.detect = elantech_detect,
|
||||
.init = elantech_init_smbus,
|
||||
.smbus_companion = true,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_MOUSE_PS2_SENTELIC
|
||||
@@ -1158,8 +1168,13 @@ static int psmouse_extensions(struct psmouse *psmouse,
|
||||
/* Try Elantech touchpad */
|
||||
if (max_proto > PSMOUSE_IMEX &&
|
||||
psmouse_try_protocol(psmouse, PSMOUSE_ELANTECH,
|
||||
&max_proto, set_properties, true)) {
|
||||
return PSMOUSE_ELANTECH;
|
||||
&max_proto, set_properties, false)) {
|
||||
if (!set_properties)
|
||||
return PSMOUSE_ELANTECH;
|
||||
|
||||
ret = elantech_init(psmouse);
|
||||
if (ret >= 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (max_proto > PSMOUSE_IMEX) {
|
||||
|
Reference in New Issue
Block a user