Skip to content

Commit 8521478

Browse files
committed
Input: synaptics - fix touchpad not working after S2R on Vostro V13
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 <[email protected]> Tested-by: Daniel Manrique <[email protected]> Cc: [email protected] Signed-off-by: Dmitry Torokhov <[email protected]>
1 parent 3a7f8fb commit 8521478

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

drivers/input/mouse/synaptics.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
*/
2525

2626
#include <linux/module.h>
27+
#include <linux/delay.h>
2728
#include <linux/dmi.h>
2829
#include <linux/input/mt.h>
2930
#include <linux/serio.h>
@@ -1220,6 +1221,16 @@ static int synaptics_reconnect(struct psmouse *psmouse)
12201221

12211222
do {
12221223
psmouse_reset(psmouse);
1224+
if (retry) {
1225+
/*
1226+
* On some boxes, right after resuming, the touchpad
1227+
* needs some time to finish initializing (I assume
1228+
* it needs time to calibrate) and start responding
1229+
* to Synaptics-specific queries, so let's wait a
1230+
* bit.
1231+
*/
1232+
ssleep(1);
1233+
}
12231234
error = synaptics_detect(psmouse, 0);
12241235
} while (error && ++retry < 3);
12251236

0 commit comments

Comments
 (0)