From: Stefan Assmann <sassm...@kpanic.de>

3.12-stable review patch.  If anyone has any objections, please let me know.

===============

commit 66bc2f51ef7deabc8b8f3baa98ae64b65e5e973a upstream.

There are trackpoint devices that fail to respond to the PS2 command
PSMOUSE_CMD_GETID if immediately queried after the parent device is
deactivated. Add a small delay for the hardware to get in a sane state
before sending any PS2 commands.

One example of such a system is:
Lenovo ThinkPad X120e, model 30515QG
synaptics: Touchpad model: 1, fw: 8.0, id: 0x1e2b1, caps: 
0xd001a3/0x940300/0x121c00, board id: 1811, fw id: 797391

Signed-off-by: Stefan Assmann <sassm...@kpanic.de>
Signed-off-by: Dmitry Torokhov <dmitry.torok...@gmail.com>
Cc: Oliver Neukum <oneu...@suse.com>
Signed-off-by: Jiri Slaby <jsl...@suse.cz>
---
 drivers/input/mouse/psmouse-base.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/input/mouse/psmouse-base.c 
b/drivers/input/mouse/psmouse-base.c
index cff065f6261c..de3d92077c77 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -1441,6 +1441,10 @@ static int psmouse_connect(struct serio *serio, struct 
serio_driver *drv)
        if (error)
                goto err_clear_drvdata;
 
+       /* give PT device some time to settle down before probing */
+       if (serio->id.type == SERIO_PS_PSTHRU)
+               usleep_range(10000, 15000);
+
        if (psmouse_probe(psmouse) < 0) {
                error = -ENODEV;
                goto err_close_serio;
-- 
2.6.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to