Commit a67ada7a authored by JJ Ding's avatar JJ Ding Committed by Dmitry Torokhov

Input: elantech - reset touchpad before configuring it

Acer VH40 has a Fn key toggling the touchpad on and off, but it's
implemented in system firmware, and the EC chip has to receive
reset command to activate this function. Also when this machine
wakes up after resume, psmouse_reset is necessary to bring the
touchpad back on.
Signed-off-by: default avatarJJ Ding <jj_ding@emc.com.tw>
Reviewed-by: default avatarChase Douglas <chase.douglas@canonical.com>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent d626dad5
...@@ -1245,6 +1245,8 @@ static void elantech_disconnect(struct psmouse *psmouse) ...@@ -1245,6 +1245,8 @@ static void elantech_disconnect(struct psmouse *psmouse)
*/ */
static int elantech_reconnect(struct psmouse *psmouse) static int elantech_reconnect(struct psmouse *psmouse)
{ {
psmouse_reset(psmouse);
if (elantech_detect(psmouse, 0)) if (elantech_detect(psmouse, 0))
return -1; return -1;
...@@ -1324,6 +1326,8 @@ int elantech_init(struct psmouse *psmouse) ...@@ -1324,6 +1326,8 @@ int elantech_init(struct psmouse *psmouse)
if (!etd) if (!etd)
return -ENOMEM; return -ENOMEM;
psmouse_reset(psmouse);
etd->parity[0] = 1; etd->parity[0] = 1;
for (i = 1; i < 256; i++) for (i = 1; i < 256; i++)
etd->parity[i] = etd->parity[i & (i - 1)] ^ 1; etd->parity[i] = etd->parity[i & (i - 1)] ^ 1;
......
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