diff options
Diffstat (limited to 'drivers/input/mouse/synaptics.c')
| -rw-r--r-- | 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 c080b828e5d..a6dcd18e9ad 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> @@ -1220,6 +1221,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);  |