Dell touchpad disabled after suspend

As the title says, my dell laptop’s touchpad doesn’t work after the computer wakes up from a suspend.

This doesn’t happen in windows so I don’t think it’s a hardware issue.

I’m running 13.2 with the latest updates.
I tried this: https://forums.opensuse.org/showthread.php/410960-mouse-doesnt-work-after-resume#post1980420
But it didn’t help (which was not surprising since it’s a pretty old post).

Not sure what logs would be useful.
Here’s the output of dmesg shortly after waking it up:
http://pastebin.com/7b7kj8xQ

This seems weird, but I’m not sure it gives any useful information.

  186.086338] psmouse serio1: Failed to disable mouse on isa0060/serio1


It happens on going to sleep and if anything, my problem is that it can’t seem to be enabled later :D!

More hardware information could be useful here. In particular laptop model, and post what is reported from the following

/usr/sbin/hwinfo --mouse

It’s a dell inspiron 13 7000.

Here’s hwinfo’s output:

34: PS/2 00.0: 10500 PS/2 Mouse
  [Created at input.249]
  Unique ID: AH6Q.aaw02jN0uv2
  Hardware Class: mouse
  Model: "SynPS/2 Synaptics TouchPad"
  Vendor: 0x0002 
  Device: 0x0007 "SynPS/2 Synaptics TouchPad"
  Compatible to: int 0x0210 0x0003
  Device File: /dev/input/mice (/dev/input/mouse0)
  Device Files: /dev/input/mice, /dev/input/mouse0, /dev/input/event1, /dev/input/by-path/platform-i8042-serio-1-event-mouse, /dev/input/by-path/platform-i8042-serio-1-mouse
  Device Number: char 13:63 (char 13:32)
  Driver Info #0:
    Buttons: 3
    Wheels: 0
    XFree86 Protocol: explorerps/2
    GPM Protocol: exps2
  Config Status: cfg=new, avail=yes, need=no, active=unknown

35: PS/2 00.0: 10500 PS/2 Mouse
  [Created at input.249]
  Unique ID: AH6Q.ozk4ksxssA6
  Hardware Class: mouse
  Model: "DLL0674:00 06CB:75DB UNKNOWN"
  Vendor: 0x06cb 
  Device: 0x75db "DLL0674:00 06CB:75DB UNKNOWN"
  Compatible to: int 0x0210 0x0001
  Device File: /dev/input/mice (/dev/input/mouse3)
  Device Files: /dev/input/mice, /dev/input/mouse3, /dev/input/event16, /dev/input/by-path/platform-INT33C3:00-event-mouse, /dev/input/by-path/platform-INT33C3:00-mouse
  Device Number: char 13:63 (char 13:35)
  Driver Info #0:
    Buttons: 1
    Wheels: 0
    XFree86 Protocol: explorerps/2
    GPM Protocol: exps2
  Config Status: cfg=new, avail=yes, need=no, active=unknown


Okay, the output for synaptics device looks normal to me. This will likely need a bug report to get fixed.

A long shot, but try the following following a resume

echo -n rescan > /sys/devices/platform/i8042/serio1/drvct
  • You might find it convenient to use Alt +F2 to get a ‘Run’ dialogue box open, and launch a terminal from there.

Does the touchpad get activated again?

Nothing :frowning:

Where should I report this as a bug? openSuse’s bug tracking I presume?

Thanks for the help.

A couple of workarounds described here and worth trying

Occasionally touchpads will fail to work when the computer resumes from sleep or hibernation. This can often be corrected without rebooting by

  • Switching to a console and back again,
  • entering sleep mode again, and resuming again

*The psmouse module reloading suggestion isn’t applicable to openSUSE, because it’s built as part of the kernel (not a module).

For the bug reporting, go here

https://bugzilla.opensuse.org/index.cgi

Advice about submitting bug reports here

https://en.opensuse.org/openSUSE:Submitting_bug_reports

Let us know how you get on

Switching terminals didn’t work, but that thread pointed me to another possible solution - removing the i2c_hid module and modprobbing it again fixes it. This: https://bbs.archlinux.org/viewtopic.php?pid=1419078

There are some possible long term solutions listed there that I can play with (blacklist that module and use others in its place).
It seems to have something to do with the touchscreen maybe.

My problem was never that the device wasn’t recognized as a synaptics touchpad but it may related in some other way since that same module “wakes” it up after it goes away.

Not sure if this is still worth reporting as a bug.
Obviously having to unload and load the module every time I wake the computer up is not ideal, but I can live with it for now.

Thanks for the link!

That is good to know.

There are some possible long term solutions listed there that I can play with (blacklist that module and use others in its place).
It seems to have something to do with the touchscreen maybe.

Yes, worth trying.

Not sure if this is still worth reporting as a bug.
Obviously having to unload and load the module every time I wake the computer up is not ideal, but I can live with it for now.

Thanks for the link!

Well, it is possible to incorporate the module loading/unloading using systemd as explained here

http://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html
https://wiki.archlinux.org/index.php/Power_management#Sleep_hooks

I wonder if unloading the ‘i2c_hid’ module prior to suspend is all that may be required?

Yes! You were correct. Unloading the module on suspend and then reloading it on wake up appears to have fixed it.

For anyone who stumbles on this, here’s how this was fixed on my machine.

/etc/systemd/system/root-suspend.service:

[Unit]
Description=Local system suspend actions
Before=sleep.target

[Service]
Type=simple
ExecStart=/sbin/modprobe -r i2c_hid

[Install]
WantedBy=sleep.target

/etc/systemd/system/root-resume.service:

[Unit]
Description=Local system resume actions
After=suspend.target

[Service]
Type=simple
ExecStart=/sbin/modprobe i2c_hid

[Install]
WantedBy=suspend.target

Then enable both services:

systemctl enable root-suspend.service
systemctl enable root-resume.service

And on next wake up, I had my touchpad working automagically (with a 3-4 second delay which had me on the edge of my seat).

Side note: archlinux sure has an excellent wiki. Not the first time the answer to a problem of mine has been tucked away in there.

deano_ferrari, thanks for the suggestions. Your hunches were always right on the money and led us to the solution extra quick.

Good to know.

Side note*: archlinux sure has an excellent wiki. Not the first time the answer to a problem of mine has been tucked away in there.

Yes, they have some excellent wiki pages - informative and well-written.

deano_ferrari, thanks for the suggestions. Your hunches were always right on the money and led us to the solution extra quick.

Glad to have been help, and great that you persevered with this. This is bound to be of great help to others, especially for those needing to migrate from ‘pm-utils’ scripts to a systemd framework.