From 512b3000132ed77b169b712952b571cf2122f85f Mon Sep 17 00:00:00 2001 From: Alexandre Peixoto Ferreira Date: Fri, 28 Jan 2011 22:05:14 -0800 Subject: [PATCH] --- yaml --- r: 232578 b: refs/heads/master c: c63fe0a41fd2374be0ebe93c053820a0eed9cefe h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/input/mouse/synaptics.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 45dedfcb56da..793b862dd882 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: baddf58963241307b29e027a9fb28dfe55939db8 +refs/heads/master: c63fe0a41fd2374be0ebe93c053820a0eed9cefe diff --git a/trunk/drivers/input/mouse/synaptics.c b/trunk/drivers/input/mouse/synaptics.c index fdf089c0c707..aa186cf6c514 100644 --- a/trunk/drivers/input/mouse/synaptics.c +++ b/trunk/drivers/input/mouse/synaptics.c @@ -755,12 +755,21 @@ static int synaptics_reconnect(struct psmouse *psmouse) { struct synaptics_data *priv = psmouse->private; struct synaptics_data old_priv = *priv; + int retry = 0; + int error; - psmouse_reset(psmouse); + do { + psmouse_reset(psmouse); + error = synaptics_detect(psmouse, 0); + } while (error && ++retry < 3); - if (synaptics_detect(psmouse, 0)) + if (error) return -1; + if (retry > 1) + printk(KERN_DEBUG "Synaptics reconnected after %d tries\n", + retry); + if (synaptics_query_hardware(psmouse)) { printk(KERN_ERR "Unable to query Synaptics hardware.\n"); return -1;