Commit aeaa881f authored by Ben Gamari's avatar Ben Gamari Committed by Dmitry Torokhov

Input: ALPS - set DualPoint flag for 74 03 28 devices

Here we introduce logic in alps_identify to set the ALPS_DUALPOINT flag
for touchpad hardware responding to E7 report with 73 03 28, as is found
in the Dell Latitude E7470.
Tested-by: default avatarMichal Hocko <mhocko@suse.com>
Signed-off-by: default avatarBen Gamari <ben@smart-cactus.org>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 7ad8a106
...@@ -2747,6 +2747,10 @@ static int alps_set_protocol(struct psmouse *psmouse, ...@@ -2747,6 +2747,10 @@ static int alps_set_protocol(struct psmouse *psmouse,
if (alps_set_defaults_ss4_v2(psmouse, priv)) if (alps_set_defaults_ss4_v2(psmouse, priv))
return -EIO; return -EIO;
if (priv->fw_ver[1] == 0x1)
priv->flags |= ALPS_DUALPOINT |
ALPS_DUALPOINT_WITH_PRESSURE;
break; break;
} }
...@@ -2819,6 +2823,9 @@ static int alps_identify(struct psmouse *psmouse, struct alps_data *priv) ...@@ -2819,6 +2823,9 @@ static int alps_identify(struct psmouse *psmouse, struct alps_data *priv)
} else if (e7[0] == 0x73 && e7[1] == 0x03 && } else if (e7[0] == 0x73 && e7[1] == 0x03 &&
e7[2] == 0x14 && ec[1] == 0x02) { e7[2] == 0x14 && ec[1] == 0x02) {
protocol = &alps_v8_protocol_data; protocol = &alps_v8_protocol_data;
} else if (e7[0] == 0x73 && e7[1] == 0x03 &&
e7[2] == 0x28 && ec[1] == 0x01) {
protocol = &alps_v8_protocol_data;
} else { } else {
psmouse_dbg(psmouse, psmouse_dbg(psmouse,
"Likely not an ALPS touchpad: E7=%3ph, EC=%3ph\n", e7, ec); "Likely not an ALPS touchpad: E7=%3ph, EC=%3ph\n", e7, ec);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment