Skip to contentSkip to conversation

psmouse as module with suspend/resume

DISCUSSION Kevin Fenzi 3 participants 4 messages Jul 15, 2004 – Jul 17, 2004 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
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]

#3 lore raw
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.c module 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
#4 lore raw

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_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.

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