Input: elantech - reset touchpad before configuring it
authorJJ Ding <jj_ding@emc.com.tw>
Tue, 10 Apr 2012 07:29:12 +0000 (00:29 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 10 Apr 2012 07:40:31 +0000 (00:40 -0700)
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: JJ Ding <jj_ding@emc.com.tw>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/mouse/elantech.c

index d2c0db159b18dfc364c2ff7fc036863ef2de9614..21c68a8953d78ae16e1472e5099e7b381696eb8e 100644 (file)
@@ -1245,6 +1245,8 @@ static void elantech_disconnect(struct psmouse *psmouse)
  */
 static int elantech_reconnect(struct psmouse *psmouse)
 {
+       psmouse_reset(psmouse);
+
        if (elantech_detect(psmouse, 0))
                return -1;
 
@@ -1324,6 +1326,8 @@ int elantech_init(struct psmouse *psmouse)
        if (!etd)
                return -ENOMEM;
 
+       psmouse_reset(psmouse);
+
        etd->parity[0] = 1;
        for (i = 1; i < 256; i++)
                etd->parity[i] = etd->parity[i & (i - 1)] ^ 1;