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 <daniel.manrique@canonical.com> Tested-by: Daniel Manrique <daniel.manrique@canonical.com> Cc: stable@kernel.org Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
3a7f8fb1d8
commit
8521478f67
|
@ -24,6 +24,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
#include <linux/dmi.h>
|
#include <linux/dmi.h>
|
||||||
#include <linux/input/mt.h>
|
#include <linux/input/mt.h>
|
||||||
#include <linux/serio.h>
|
#include <linux/serio.h>
|
||||||
|
@ -1220,6 +1221,16 @@ static int synaptics_reconnect(struct psmouse *psmouse)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
psmouse_reset(psmouse);
|
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);
|
error = synaptics_detect(psmouse, 0);
|
||||||
} while (error && ++retry < 3);
|
} while (error && ++retry < 3);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue