psmouse as module with suspend/resume
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Greetings.
I am having a bit of an issue with psmouse and suspend/resume. I am using the swsusp2, which is working great... (Thanks Nigel!)
However:
If I compile psmouse as a module and leave it in and suspend/resume when the laptop comes back the mouse doesn't work at all.
If I compile psmouse as a module and unload before suspend, and reload after resume, the mouse works for simple movement, but all the advanced synaptics features no longer work. No tap for mouse button, no scolling, etc.
If I compile psmouse in everything works after a suspend/resume cycle.
I would like to be able to compile psmouse as a module. Does anyone see any reason the synaptics stuff wouldn't work after a unload/reload?
Before a suspend/resume:
kernel: Synaptics Touchpad, model: 1 kernel: Firmware: 5.9 kernel: Sensor: 51 kernel: new absolute packet format kernel: Touchpad has extended capability bits kernel: -> 4 multi-buttons, i.e. besides standard buttons kernel: -> multifinger detection kernel: -> palm detection kernel: input: SynPS/2 Synaptics TouchPad on isa0060/serio4
Afer a unload and reload:
kernel: Synaptics Touchpad, model: 1 kernel: Firmware: 5.9 kernel: Sensor: 51 kernel: new absolute packet format kernel: Touchpad has extended capability bits kernel: -> 4 multi-buttons, i.e. besides standard buttons kernel: -> multifinger detection kernel: -> palm detection kernel: input: SynPS/2 Synaptics TouchPad on isa0060/serio4
So, it all looks the same there.
I wonder if it's not something with the input layer not reconnecting right on reload with what the synaptics driver in X is expecting...
In the X log after a resume/reload:
(II) DevInputMice: ps2EnableDataReporting: succeeded Synaptics DeviceOn called
(EE) xf86OpenSerial: Cannot open device /dev/input/event2
No such device.
(WW) Mouse0: cannot open input device
Any ideas?
Happy to provde more information on versions, etc...
thanks,
kevin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8 <http://mailcrypt.sourceforge.net/>
iD8DBQFA9u8i3imCezTjY0ERAmWnAJ9uKMauJAfSMKgz9VBB6Z5o7/66vACffKg5 8Imj27a19cu4OtVuhaszXOM=
=6i7m
-----END PGP SIGNATURE-----
Quoted 11 lines · Kevin Fenzi
Greetings.
I am having a bit of an issue with psmouse and suspend/resume. I am using the swsusp2, which is working great... (Thanks Nigel!)
However:
If I compile psmouse as a module and leave it in and suspend/resume when the laptop comes back the mouse doesn't work at all.
Quoted 7 lines
If I compile psmouse as a module and unload before suspend, and reload after resume, the mouse works for simple movement, but all the advanced synaptics features no longer work. No tap for mouse button, no scolling, etc.
If I compile psmouse in everything works after a suspend/resume cycle.
There should not be any differences between module and compiled version. Could you please change #undef DEBUG to #define DEBUG in drivers/input/serio/i8042.c module and post the full dmesg (you may have to use log_buf_size=131072 and 'dmesg -s 131072' to get the full dmesg).
Quoted 3 lines
I would like to be able to compile psmouse as a module. Does anyone see any reason the synaptics stuff wouldn't work after a unload/reload?
When you reload do you do it from X or from text console? Do you have GPM running? If some program has the device open when you reload a new device will be created. X closes the device when switching to a text console, so just kill GPM before reloading psmouse and it should help.
Signature · 1 line
Dmitry
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 27 lines · Kevin Fenzi
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Dmitry" == Dmitry Torokhov <[email protected]> writes:
Quoted 10 lines · Kevin Fenzi
Quoted 10 lines
Greetings.
I am having a bit of an issue with psmouse and suspend/resume. I am using the swsusp2, which is working great... (Thanks Nigel!)
However:
If I compile psmouse as a module and leave it in and suspend/resume when the laptop comes back the mouse doesn't work at all.
Quoted 7 lines
Quoted 7 lines
If I compile psmouse as a module and unload before suspend, and reload after resume, the mouse works for simple movement, but all the advanced synaptics features no longer work. No tap for mouse button, no scolling, etc.
If I compile psmouse in everything works after a suspend/resume cycle.
Dmitry> There should not be any differences between module and Dmitry> compiled version. Could you please change #undef DEBUG to Dmitry> #define DEBUG in
drivers/input/serio/i8042.cmodule and post Dmitry> the full dmesg (you may have to use log_buf_size=131072 and Dmitry> 'dmesg -s 131072' to get the full dmesg).
Quoted 8 lines
ok. I did that...
Here is a boot up with psmouse as a module.
Then a suspend.
Then a rmmod psmouse; modprobe psmouse.From what I see there was no attempts to reconnect any of the devices
connected to PS/2 ports.
I am inclined to say that it's swsusp2 problem. I briefly looked over the code and I could not find a place where device_power_up would be called; swsusp2 goes straight to device_resume. This causes system devices (and i8042 is currently a system device) not be resumed and thus your touchpad is left id default PS/2 hardware emulation mode.
Have you tried swsusp1? It seems to have the proper hooks in place.
Signature · 1 line
Dmitry
Hi.
Quoted 5 lines · Dmitry Torokhov
I am inclined to say that it's swsusp2 problem. I briefly looked over the code and I could not find a place where
device_power_upwould be called; swsusp2 goes straight todevice_resume. This causes system devices (and i8042 is currently a system device) not be resumed and thus your touchpad is left id default PS/2 hardware emulation mode.
Ah. I see what you mean. Pavel and Patrick have improved the support in their versions and I still have the old code. I'll update to use the device tree properly.
Regards,
Nigel