linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Bug: touchpad unresponsive after resume from S3 (psmouse driver)
@ 2011-11-29 16:26 Daniel Manrique
  2011-11-29 17:53 ` Dmitry Torokhov
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Manrique @ 2011-11-29 16:26 UTC (permalink / raw)
  To: dmitry.torokhov; +Cc: linux-input

Hello,

I apologize for sending this bug report directly; with the kernel.org bugtracker
down I was told this was the best option for the time being. If this is not
correct, could you please let me know of a good place to submit this bug report?

I have several Dell laptops with Synaptics touchpads, particularly a group of
Vostro V13 systems. On these, after a suspend/resume cycle, the touchpad
(Synaptics) is unresponsive; a workaround is to rmmod psmouse; modprobe psmouse.

This was first reported on kernel 2.6.38, although I think the issue has been
present from as early as 2.6.32. I verified it for sure with Ubuntu 2.6.38
kernels, 3.0.0 kernels, and a 3.2.0 kernel from the development release, as well
as a "mainline" 3.1.0-rc10 kernel.

Since this problem was seen on Ubuntu, it's filed on the Launchpad bug tracker.
The first report I can find is this one:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/715267

This includes a series of log messages I don't see on my systems. I then filed
this other bug:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/879650

The last one contains specific information from one of my systems (a Vostro V13).

I'd really appreciate any help or guidance on how to solve this problem. If you
need me to collect any information or run any tests on these machines, please
don't hesitate to ask, these systems are primarily used for testing.

Thanks in advance,

- Daniel Manrique
  daniel.manrique@canonical.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Bug: touchpad unresponsive after resume from S3 (psmouse driver)
  2011-11-29 16:26 Bug: touchpad unresponsive after resume from S3 (psmouse driver) Daniel Manrique
@ 2011-11-29 17:53 ` Dmitry Torokhov
  2011-11-29 19:43   ` Daniel Manrique
  0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Torokhov @ 2011-11-29 17:53 UTC (permalink / raw)
  To: Daniel Manrique; +Cc: linux-input

Hi Daniel,

On Tue, Nov 29, 2011 at 11:26:19AM -0500, Daniel Manrique wrote:
> Hello,
> 
> I apologize for sending this bug report directly; with the kernel.org bugtracker
> down I was told this was the best option for the time being. If this is not
> correct, could you please let me know of a good place to submit this bug report?
> 
> I have several Dell laptops with Synaptics touchpads, particularly a group of
> Vostro V13 systems. On these, after a suspend/resume cycle, the touchpad
> (Synaptics) is unresponsive; a workaround is to rmmod psmouse; modprobe psmouse.
> 
> This was first reported on kernel 2.6.38, although I think the issue has been
> present from as early as 2.6.32. I verified it for sure with Ubuntu 2.6.38
> kernels, 3.0.0 kernels, and a 3.2.0 kernel from the development release, as well
> as a "mainline" 3.1.0-rc10 kernel.
> 
> Since this problem was seen on Ubuntu, it's filed on the Launchpad bug tracker.
> The first report I can find is this one:
> 
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/715267
> 
> This includes a series of log messages I don't see on my systems. I then filed
> this other bug:
> 
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/879650
> 
> The last one contains specific information from one of my systems (a Vostro V13).
> 
> I'd really appreciate any help or guidance on how to solve this problem. If you
> need me to collect any information or run any tests on these machines, please
> don't hesitate to ask, these systems are primarily used for testing.
>

Please do:

 - enable i8042 debug (echo 1 > /sys/module/i8042/parameters/debug)
 - rmmod psmouse;
 - suspend/resume;
 - collect dmesg;
 - suspend/resume;
 - collect dmesg again

and we'll have to try and find what we do differently.

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Bug: touchpad unresponsive after resume from S3 (psmouse driver)
  2011-11-29 17:53 ` Dmitry Torokhov
@ 2011-11-29 19:43   ` Daniel Manrique
  2011-11-30  0:17     ` Dmitry Torokhov
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Manrique @ 2011-11-29 19:43 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input

On 11-11-29 12:53 PM, Dmitry Torokhov wrote:
> Hi Daniel,
> 
> On Tue, Nov 29, 2011 at 11:26:19AM -0500, Daniel Manrique wrote:
>> Hello,
>>
>> I apologize for sending this bug report directly; with the kernel.org bugtracker
>> down I was told this was the best option for the time being. If this is not
>> correct, could you please let me know of a good place to submit this bug report?
>>
>> I have several Dell laptops with Synaptics touchpads, particularly a group of
>> Vostro V13 systems. On these, after a suspend/resume cycle, the touchpad
>> (Synaptics) is unresponsive; a workaround is to rmmod psmouse; modprobe psmouse.
>>
>> This was first reported on kernel 2.6.38, although I think the issue has been
>> present from as early as 2.6.32. I verified it for sure with Ubuntu 2.6.38
>> kernels, 3.0.0 kernels, and a 3.2.0 kernel from the development release, as well
>> as a "mainline" 3.1.0-rc10 kernel.
>>
>> Since this problem was seen on Ubuntu, it's filed on the Launchpad bug tracker.
>> The first report I can find is this one:
>>
>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/715267
>>
>> This includes a series of log messages I don't see on my systems. I then filed
>> this other bug:
>>
>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/879650
>>
>> The last one contains specific information from one of my systems (a Vostro V13).
>>
>> I'd really appreciate any help or guidance on how to solve this problem. If you
>> need me to collect any information or run any tests on these machines, please
>> don't hesitate to ask, these systems are primarily used for testing.
>>
> 
> Please do:
> 
>  - enable i8042 debug (echo 1 > /sys/module/i8042/parameters/debug)
>  - rmmod psmouse;
>  - suspend/resume;
>  - collect dmesg;
>  - suspend/resume;
>  - collect dmesg again
> 
> and we'll have to try and find what we do differently.
> 
> Thanks.
> 

Hi Dmitry,

Thanks so much for the quick reply!

I just ran the tests you requested with some extra steps which I hope won't
confuse things. Here's the sequence I followed:

- Enabled i8042 debug
- sudo rmmod psmouse. Touchpad of course becomes unresponsive.
- sudo pm-suspend
- Wake the machine by pressing power
- At this point touchpad is unresponsive.
- Collected dmesg-1.txt
- sudo pm-suspend
- wake the machine by pressing power
- At this point touchpad is still unresponsive.
- Collected dmesg-2.txt
- sudo modprobe psmouse. Touchpad begins responding.
- Collected dmesg-3.txt
- sudo pm-suspend
- wake the machine by pressing power
- At this point touchpad is again unresponsive.
- Collected dmesg-4.txt

To avoid attaching largish files to this email, I put the logs on a
publically-accessible http server at:
http://people.canonical.com/~roadmr/lp715267/. Please let me know if you prefer
something else.

Thanks in advance for your help!

- Daniel Manrique





^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Bug: touchpad unresponsive after resume from S3 (psmouse driver)
  2011-11-29 19:43   ` Daniel Manrique
@ 2011-11-30  0:17     ` Dmitry Torokhov
  2011-11-30 15:18       ` Daniel Manrique
  0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Torokhov @ 2011-11-30  0:17 UTC (permalink / raw)
  To: Daniel Manrique; +Cc: linux-input

On Tue, Nov 29, 2011 at 02:43:35PM -0500, Daniel Manrique wrote:
> On 11-11-29 12:53 PM, Dmitry Torokhov wrote:
> > Hi Daniel,
> > 
> > On Tue, Nov 29, 2011 at 11:26:19AM -0500, Daniel Manrique wrote:
> >> Hello,
> >>
> >> I apologize for sending this bug report directly; with the kernel.org bugtracker
> >> down I was told this was the best option for the time being. If this is not
> >> correct, could you please let me know of a good place to submit this bug report?
> >>
> >> I have several Dell laptops with Synaptics touchpads, particularly a group of
> >> Vostro V13 systems. On these, after a suspend/resume cycle, the touchpad
> >> (Synaptics) is unresponsive; a workaround is to rmmod psmouse; modprobe psmouse.
> >>
> >> This was first reported on kernel 2.6.38, although I think the issue has been
> >> present from as early as 2.6.32. I verified it for sure with Ubuntu 2.6.38
> >> kernels, 3.0.0 kernels, and a 3.2.0 kernel from the development release, as well
> >> as a "mainline" 3.1.0-rc10 kernel.
> >>
> >> Since this problem was seen on Ubuntu, it's filed on the Launchpad bug tracker.
> >> The first report I can find is this one:
> >>
> >> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/715267
> >>
> >> This includes a series of log messages I don't see on my systems. I then filed
> >> this other bug:
> >>
> >> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/879650
> >>
> >> The last one contains specific information from one of my systems (a Vostro V13).
> >>
> >> I'd really appreciate any help or guidance on how to solve this problem. If you
> >> need me to collect any information or run any tests on these machines, please
> >> don't hesitate to ask, these systems are primarily used for testing.
> >>
> > 
> > Please do:
> > 
> >  - enable i8042 debug (echo 1 > /sys/module/i8042/parameters/debug)
> >  - rmmod psmouse;
> >  - suspend/resume;
> >  - collect dmesg;
> >  - suspend/resume;
> >  - collect dmesg again
> > 
> > and we'll have to try and find what we do differently.
> > 
> > Thanks.
> > 
> 
> Hi Dmitry,
> 
> Thanks so much for the quick reply!
> 
> I just ran the tests you requested with some extra steps which I hope won't
> confuse things. Here's the sequence I followed:
> 
> - Enabled i8042 debug
> - sudo rmmod psmouse. Touchpad of course becomes unresponsive.
> - sudo pm-suspend
> - Wake the machine by pressing power
> - At this point touchpad is unresponsive.
> - Collected dmesg-1.txt
> - sudo pm-suspend
> - wake the machine by pressing power
> - At this point touchpad is still unresponsive.
> - Collected dmesg-2.txt
> - sudo modprobe psmouse. Touchpad begins responding.
> - Collected dmesg-3.txt
> - sudo pm-suspend
> - wake the machine by pressing power
> - At this point touchpad is again unresponsive.
> - Collected dmesg-4.txt
> 
> To avoid attaching largish files to this email, I put the logs on a
> publically-accessible http server at:
> http://people.canonical.com/~roadmr/lp715267/. Please let me know if you prefer
> something else.
> 

Hmm, it just does not want to admit that it is synaptics after reset.
Does the patch below help any?

-- 
Dmitry


Input: synaptics - delay in reconnect

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---

 drivers/input/mouse/synaptics.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)


diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 06c9ee5..fa127ec 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -1279,6 +1279,7 @@ static void synaptics_disconnect(struct psmouse *psmouse)
 	psmouse->private = NULL;
 }
 
+#include <linux/delay.h>
 static int synaptics_reconnect(struct psmouse *psmouse)
 {
 	struct synaptics_data *priv = psmouse->private;
@@ -1288,6 +1289,17 @@ static int synaptics_reconnect(struct psmouse *psmouse)
 
 	do {
 		psmouse_reset(psmouse);
+		if (retry) {
+			unsigned char param[2];
+
+			psmouse_info(psmouse, "Delaying after reset.\n");
+			ssleep(1);
+
+			psmouse_info(psmouse, "Querying ID.\n");
+			param[0] = 0xa5;
+			error = ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETID);
+			psmouse_info(psmouse, "ID: %x %x (%d).\n", param[0], param[1], error);
+		}
 		error = synaptics_detect(psmouse, 0);
 	} while (error && ++retry < 3);
 

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: Bug: touchpad unresponsive after resume from S3 (psmouse driver)
  2011-11-30  0:17     ` Dmitry Torokhov
@ 2011-11-30 15:18       ` Daniel Manrique
  2011-12-01  5:15         ` Dmitry Torokhov
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Manrique @ 2011-11-30 15:18 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input

On 11-11-29 07:17 PM, Dmitry Torokhov wrote:
> On Tue, Nov 29, 2011 at 02:43:35PM -0500, Daniel Manrique wrote:
>> On 11-11-29 12:53 PM, Dmitry Torokhov wrote:
>>> Hi Daniel,
>>>
>>> On Tue, Nov 29, 2011 at 11:26:19AM -0500, Daniel Manrique wrote:
>>>> Hello,
>>>>
>>>> I apologize for sending this bug report directly; with the kernel.org bugtracker
>>>> down I was told this was the best option for the time being. If this is not
>>>> correct, could you please let me know of a good place to submit this bug report?
>>>>
>>>> I have several Dell laptops with Synaptics touchpads, particularly a group of
>>>> Vostro V13 systems. On these, after a suspend/resume cycle, the touchpad
>>>> (Synaptics) is unresponsive; a workaround is to rmmod psmouse; modprobe psmouse.
>>>>
>>>> This was first reported on kernel 2.6.38, although I think the issue has been
>>>> present from as early as 2.6.32. I verified it for sure with Ubuntu 2.6.38
>>>> kernels, 3.0.0 kernels, and a 3.2.0 kernel from the development release, as well
>>>> as a "mainline" 3.1.0-rc10 kernel.
>>>>
>>>> Since this problem was seen on Ubuntu, it's filed on the Launchpad bug tracker.
>>>> The first report I can find is this one:
>>>>
>>>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/715267
>>>>
>>>> This includes a series of log messages I don't see on my systems. I then filed
>>>> this other bug:
>>>>
>>>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/879650
>>>>
>>>> The last one contains specific information from one of my systems (a Vostro V13).
>>>>
>>>> I'd really appreciate any help or guidance on how to solve this problem. If you
>>>> need me to collect any information or run any tests on these machines, please
>>>> don't hesitate to ask, these systems are primarily used for testing.
>>>>
>>>
>>> Please do:
>>>
>>>  - enable i8042 debug (echo 1 > /sys/module/i8042/parameters/debug)
>>>  - rmmod psmouse;
>>>  - suspend/resume;
>>>  - collect dmesg;
>>>  - suspend/resume;
>>>  - collect dmesg again
>>>
>>> and we'll have to try and find what we do differently.
>>>
>>> Thanks.
>>>
>>
>> Hi Dmitry,
>>
>> Thanks so much for the quick reply!
>>
>> I just ran the tests you requested with some extra steps which I hope won't
>> confuse things. Here's the sequence I followed:
>>
>> - Enabled i8042 debug
>> - sudo rmmod psmouse. Touchpad of course becomes unresponsive.
>> - sudo pm-suspend
>> - Wake the machine by pressing power
>> - At this point touchpad is unresponsive.
>> - Collected dmesg-1.txt
>> - sudo pm-suspend
>> - wake the machine by pressing power
>> - At this point touchpad is still unresponsive.
>> - Collected dmesg-2.txt
>> - sudo modprobe psmouse. Touchpad begins responding.
>> - Collected dmesg-3.txt
>> - sudo pm-suspend
>> - wake the machine by pressing power
>> - At this point touchpad is again unresponsive.
>> - Collected dmesg-4.txt
>>
>> To avoid attaching largish files to this email, I put the logs on a
>> publically-accessible http server at:
>> http://people.canonical.com/~roadmr/lp715267/. Please let me know if you prefer
>> something else.
>>
> 
> Hmm, it just does not want to admit that it is synaptics after reset.
> Does the patch below help any?

Hi Dmitry,

I applied the patch to a 3.2-series kernel (based off 3.2-rc3 I think). It
applied cleanly to psmouse.c, and after compiling the driver and putting it in
place of the old psmouse.ko, the touchpad works after resuming from suspend!

I did a comparison test by swapping drivers (old vs. new) without rebooting, by
rmmodding the existing psmouse driver, putting the old/new file in place,
reloading the driver and doing a suspend/resume cycle. Consistently, with the
old/original driver I still see the problem, but with the new/patched driver the
touchpad is always enabled after resume.

i only tested this on one of the failing Vostro V13, please let me know if I
should test for anything like possible misbehaviors on other previously-working
systems or some other kind of regression.

But still, this patch seems to work fine, thanks for this! What's the next step
for getting this fix into the official kernel? Anything I can do to help?

Thanks again,

- Daniel



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Bug: touchpad unresponsive after resume from S3 (psmouse driver)
  2011-11-30 15:18       ` Daniel Manrique
@ 2011-12-01  5:15         ` Dmitry Torokhov
  2011-12-01 20:39           ` Daniel Manrique
  0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Torokhov @ 2011-12-01  5:15 UTC (permalink / raw)
  To: Daniel Manrique; +Cc: linux-input

On Wed, Nov 30, 2011 at 10:18:10AM -0500, Daniel Manrique wrote:
> On 11-11-29 07:17 PM, Dmitry Torokhov wrote:
> > On Tue, Nov 29, 2011 at 02:43:35PM -0500, Daniel Manrique wrote:
> >> On 11-11-29 12:53 PM, Dmitry Torokhov wrote:
> >>> Hi Daniel,
> >>>
> >>> On Tue, Nov 29, 2011 at 11:26:19AM -0500, Daniel Manrique wrote:
> >>>> Hello,
> >>>>
> >>>> I apologize for sending this bug report directly; with the kernel.org bugtracker
> >>>> down I was told this was the best option for the time being. If this is not
> >>>> correct, could you please let me know of a good place to submit this bug report?
> >>>>
> >>>> I have several Dell laptops with Synaptics touchpads, particularly a group of
> >>>> Vostro V13 systems. On these, after a suspend/resume cycle, the touchpad
> >>>> (Synaptics) is unresponsive; a workaround is to rmmod psmouse; modprobe psmouse.
> >>>>
> >>>> This was first reported on kernel 2.6.38, although I think the issue has been
> >>>> present from as early as 2.6.32. I verified it for sure with Ubuntu 2.6.38
> >>>> kernels, 3.0.0 kernels, and a 3.2.0 kernel from the development release, as well
> >>>> as a "mainline" 3.1.0-rc10 kernel.
> >>>>
> >>>> Since this problem was seen on Ubuntu, it's filed on the Launchpad bug tracker.
> >>>> The first report I can find is this one:
> >>>>
> >>>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/715267
> >>>>
> >>>> This includes a series of log messages I don't see on my systems. I then filed
> >>>> this other bug:
> >>>>
> >>>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/879650
> >>>>
> >>>> The last one contains specific information from one of my systems (a Vostro V13).
> >>>>
> >>>> I'd really appreciate any help or guidance on how to solve this problem. If you
> >>>> need me to collect any information or run any tests on these machines, please
> >>>> don't hesitate to ask, these systems are primarily used for testing.
> >>>>
> >>>
> >>> Please do:
> >>>
> >>>  - enable i8042 debug (echo 1 > /sys/module/i8042/parameters/debug)
> >>>  - rmmod psmouse;
> >>>  - suspend/resume;
> >>>  - collect dmesg;
> >>>  - suspend/resume;
> >>>  - collect dmesg again
> >>>
> >>> and we'll have to try and find what we do differently.
> >>>
> >>> Thanks.
> >>>
> >>
> >> Hi Dmitry,
> >>
> >> Thanks so much for the quick reply!
> >>
> >> I just ran the tests you requested with some extra steps which I hope won't
> >> confuse things. Here's the sequence I followed:
> >>
> >> - Enabled i8042 debug
> >> - sudo rmmod psmouse. Touchpad of course becomes unresponsive.
> >> - sudo pm-suspend
> >> - Wake the machine by pressing power
> >> - At this point touchpad is unresponsive.
> >> - Collected dmesg-1.txt
> >> - sudo pm-suspend
> >> - wake the machine by pressing power
> >> - At this point touchpad is still unresponsive.
> >> - Collected dmesg-2.txt
> >> - sudo modprobe psmouse. Touchpad begins responding.
> >> - Collected dmesg-3.txt
> >> - sudo pm-suspend
> >> - wake the machine by pressing power
> >> - At this point touchpad is again unresponsive.
> >> - Collected dmesg-4.txt
> >>
> >> To avoid attaching largish files to this email, I put the logs on a
> >> publically-accessible http server at:
> >> http://people.canonical.com/~roadmr/lp715267/. Please let me know if you prefer
> >> something else.
> >>
> > 
> > Hmm, it just does not want to admit that it is synaptics after reset.
> > Does the patch below help any?
> 
> Hi Dmitry,
> 
> I applied the patch to a 3.2-series kernel (based off 3.2-rc3 I think). It
> applied cleanly to psmouse.c, and after compiling the driver and putting it in
> place of the old psmouse.ko, the touchpad works after resuming from suspend!
> 
> I did a comparison test by swapping drivers (old vs. new) without rebooting, by
> rmmodding the existing psmouse driver, putting the old/new file in place,
> reloading the driver and doing a suspend/resume cycle. Consistently, with the
> old/original driver I still see the problem, but with the new/patched driver the
> touchpad is always enabled after resume.
> 
> i only tested this on one of the failing Vostro V13, please let me know if I
> should test for anything like possible misbehaviors on other previously-working
> systems or some other kind of regression.
> 
> But still, this patch seems to work fine, thanks for this! What's the next step
> for getting this fix into the official kernel? Anything I can do to help?
> 

Could you please try removing either ssleep(1) or querying of device ID
from the patch and see which one of them actually fixes the issue?

Thanks!

-- 
Dmitry

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Bug: touchpad unresponsive after resume from S3 (psmouse driver)
  2011-12-01  5:15         ` Dmitry Torokhov
@ 2011-12-01 20:39           ` Daniel Manrique
  2011-12-02  6:16             ` Dmitry Torokhov
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Manrique @ 2011-12-01 20:39 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input

On 11-12-01 12:15 AM, Dmitry Torokhov wrote:
> On Wed, Nov 30, 2011 at 10:18:10AM -0500, Daniel Manrique wrote:
>> On 11-11-29 07:17 PM, Dmitry Torokhov wrote:
>>> On Tue, Nov 29, 2011 at 02:43:35PM -0500, Daniel Manrique wrote:
>>>> On 11-11-29 12:53 PM, Dmitry Torokhov wrote:
>>>>> Hi Daniel,
>>>>>
>>>>> On Tue, Nov 29, 2011 at 11:26:19AM -0500, Daniel Manrique wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I apologize for sending this bug report directly; with the kernel.org bugtracker
>>>>>> down I was told this was the best option for the time being. If this is not
>>>>>> correct, could you please let me know of a good place to submit this bug report?
>>>>>>
>>>>>> I have several Dell laptops with Synaptics touchpads, particularly a group of
>>>>>> Vostro V13 systems. On these, after a suspend/resume cycle, the touchpad
>>>>>> (Synaptics) is unresponsive; a workaround is to rmmod psmouse; modprobe psmouse.
>>>>>>
>>>>>> This was first reported on kernel 2.6.38, although I think the issue has been
>>>>>> present from as early as 2.6.32. I verified it for sure with Ubuntu 2.6.38
>>>>>> kernels, 3.0.0 kernels, and a 3.2.0 kernel from the development release, as well
>>>>>> as a "mainline" 3.1.0-rc10 kernel.
>>>>>>
>>>>>> Since this problem was seen on Ubuntu, it's filed on the Launchpad bug tracker.
>>>>>> The first report I can find is this one:
>>>>>>
>>>>>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/715267
>>>>>>
>>>>>> This includes a series of log messages I don't see on my systems. I then filed
>>>>>> this other bug:
>>>>>>
>>>>>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/879650
>>>>>>
>>>>>> The last one contains specific information from one of my systems (a Vostro V13).
>>>>>>
>>>>>> I'd really appreciate any help or guidance on how to solve this problem. If you
>>>>>> need me to collect any information or run any tests on these machines, please
>>>>>> don't hesitate to ask, these systems are primarily used for testing.
>>>>>>
>>>>>
>>>>> Please do:
>>>>>
>>>>>  - enable i8042 debug (echo 1 > /sys/module/i8042/parameters/debug)
>>>>>  - rmmod psmouse;
>>>>>  - suspend/resume;
>>>>>  - collect dmesg;
>>>>>  - suspend/resume;
>>>>>  - collect dmesg again
>>>>>
>>>>> and we'll have to try and find what we do differently.
>>>>>
>>>>> Thanks.
>>>>>
>>>>
>>>> Hi Dmitry,
>>>>
>>>> Thanks so much for the quick reply!
>>>>
>>>> I just ran the tests you requested with some extra steps which I hope won't
>>>> confuse things. Here's the sequence I followed:
>>>>
>>>> - Enabled i8042 debug
>>>> - sudo rmmod psmouse. Touchpad of course becomes unresponsive.
>>>> - sudo pm-suspend
>>>> - Wake the machine by pressing power
>>>> - At this point touchpad is unresponsive.
>>>> - Collected dmesg-1.txt
>>>> - sudo pm-suspend
>>>> - wake the machine by pressing power
>>>> - At this point touchpad is still unresponsive.
>>>> - Collected dmesg-2.txt
>>>> - sudo modprobe psmouse. Touchpad begins responding.
>>>> - Collected dmesg-3.txt
>>>> - sudo pm-suspend
>>>> - wake the machine by pressing power
>>>> - At this point touchpad is again unresponsive.
>>>> - Collected dmesg-4.txt
>>>>
>>>> To avoid attaching largish files to this email, I put the logs on a
>>>> publically-accessible http server at:
>>>> http://people.canonical.com/~roadmr/lp715267/. Please let me know if you prefer
>>>> something else.
>>>>
>>>
>>> Hmm, it just does not want to admit that it is synaptics after reset.
>>> Does the patch below help any?
>>
>> Hi Dmitry,
>>
>> I applied the patch to a 3.2-series kernel (based off 3.2-rc3 I think). It
>> applied cleanly to psmouse.c, and after compiling the driver and putting it in
>> place of the old psmouse.ko, the touchpad works after resuming from suspend!
>>
>> I did a comparison test by swapping drivers (old vs. new) without rebooting, by
>> rmmodding the existing psmouse driver, putting the old/new file in place,
>> reloading the driver and doing a suspend/resume cycle. Consistently, with the
>> old/original driver I still see the problem, but with the new/patched driver the
>> touchpad is always enabled after resume.
>>
>> i only tested this on one of the failing Vostro V13, please let me know if I
>> should test for anything like possible misbehaviors on other previously-working
>> systems or some other kind of regression.
>>
>> But still, this patch seems to work fine, thanks for this! What's the next step
>> for getting this fix into the official kernel? Anything I can do to help?
>>
> 
> Could you please try removing either ssleep(1) or querying of device ID
> from the patch and see which one of them actually fixes the issue?

Hi Dmitry,

Certainly! I compiled and tested two new versions of the module, one with the
"delaying after reset" code commented out, the other with the "querying ID"
block commented out.

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!

- Daniel

> Thanks!
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Bug: touchpad unresponsive after resume from S3 (psmouse driver)
  2011-12-01 20:39           ` Daniel Manrique
@ 2011-12-02  6:16             ` Dmitry Torokhov
  2011-12-02 17:39               ` Daniel Manrique
  0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Torokhov @ 2011-12-02  6:16 UTC (permalink / raw)
  To: Daniel Manrique; +Cc: linux-input

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@gmail.com>

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>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---

 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);
 

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: Bug: touchpad unresponsive after resume from S3 (psmouse driver)
  2011-12-02  6:16             ` Dmitry Torokhov
@ 2011-12-02 17:39               ` Daniel Manrique
  0 siblings, 0 replies; 9+ messages in thread
From: Daniel Manrique @ 2011-12-02 17:39 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input

On 11-12-02 01:16 AM, Dmitry Torokhov wrote:
> 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.
> 

Hi Dmitry!

I tried the attached patch and tested just as before, I created two versions of
the module, one with the patch, one without, and tested them.

Yes, the code in the patch works as it did before, and the touchpad works fine
after resuming. I tried several times with both modules to be sure, and results
are consistent every time (i.e. patched module works, unpatched one always fails)

Thanks for this!

- Daniel

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-12-02 17:39 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-29 16:26 Bug: touchpad unresponsive after resume from S3 (psmouse driver) Daniel Manrique
2011-11-29 17:53 ` Dmitry Torokhov
2011-11-29 19:43   ` Daniel Manrique
2011-11-30  0:17     ` Dmitry Torokhov
2011-11-30 15:18       ` Daniel Manrique
2011-12-01  5:15         ` Dmitry Torokhov
2011-12-01 20:39           ` Daniel Manrique
2011-12-02  6:16             ` Dmitry Torokhov
2011-12-02 17:39               ` Daniel Manrique

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).