On Thu, Dec 01, 2011 at 03:39:43PM -0500, Daniel Manrique wrote: > > The ssleep(1); line is what appears to do the trick; the version that just > queries the ID exhibits the same problem I reported initially, while the one > that just ssleeps works fine, with the touchpad working OK after resuming. > > I'll await further instructions on this, thanks so much for your help! > OK, great. Could you please try the patch below to make sure it works as intended and I'll queue it to upstream/stable? Thanks. -- Dmitry Input: synaptics - fix touchpad not working after S2R on Vostro V13 From: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> Synaptics touchpads on several Dell laptops, particularly Vostro V13 systems, may not respond properly to PS/2 commands and queries immediately after resuming from suspend to RAM. This leads to unresponsive touchpad after suspend/resume cycle. Adding a 1-second delay after resetting the device allows touchpad to finish initializing (calibrating?) and start reacting properly. Reported-by: Daniel Manrique <daniel.manrique@xxxxxxxxxxxxx> Tested-by: Daniel Manrique <daniel.manrique@xxxxxxxxxxxxx> Signed-off-by: Dmitry Torokhov <dtor@xxxxxxx> --- drivers/input/mouse/synaptics.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c index 06c9ee5..8081a0a 100644 --- a/drivers/input/mouse/synaptics.c +++ b/drivers/input/mouse/synaptics.c @@ -24,6 +24,7 @@ */ #include <linux/module.h> +#include <linux/delay.h> #include <linux/dmi.h> #include <linux/input/mt.h> #include <linux/serio.h> @@ -1288,6 +1289,16 @@ static int synaptics_reconnect(struct psmouse *psmouse) do { psmouse_reset(psmouse); + if (retry) { + /* + * On some boxes, right after resuming, the touchpad + * needs some time to finish initializing (I assume + * it needs time to calibrate) and start responding + * to Synaptics-specific queries, so let's wait a + * bit. + */ + ssleep(1); + } error = synaptics_detect(psmouse, 0); } while (error && ++retry < 3); -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html