Bug 86613

Summary: xinput does not restore trackpoint state after wake up
Product: libevdev Reporter: maksym.telychko
Component: CoreAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED NOTABUG QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Xorg log

Description maksym.telychko 2014-11-23 09:16:33 UTC
Created attachment 109888 [details]
Xorg log

Good day.

I guess that I choice right branch to file a bug. If not please move it to right place.

I am using Arch linux based on kernel 3.17.1 on my laptop Lenovo X121e.

STEPS TO REPRODUCE:

1. execute the following in terminal:

$ xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 1
$ xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 2
$ xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Timeout" 200
$ xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 6 7 4 5

So you get a pretty mouse wheel emulation via trackpoint.

2. Suspend to RAM the system. (note: suspend to disk (hibernate) does not lead to bug)

3. Wait couple of seconds.

4. Wake up the system.

Expected results:
Mouse wheel emulation continue to work.

Actual results:
Mouse wheel emulation disappeared.

ENVIRONMENT:
$ xinput --version
xinput version 1.6.1
XI version on server: 2.3
$ uname -a
Linux LenovoX121e 3.17.1-1-ARCH #1 SMP PREEMPT Wed Oct 15 15:04:35 CEST 2014 x86_64 GNU/Linux
$ xinput --list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=13	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=12	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ Integrated Camera                       	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=11	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=14	[slave  keyboard (3)]

X.Org X Server 1.16.1
Release Date: 2014-09-21
Comment 1 Peter Hutterer 2014-11-23 23:14:02 UTC
Sorry, this isn't actually a bug. What happens is that on suspend the device is virtually removed and then re-added on resume (as part of the USB shutdown, etc.). In the X server we can't tell the difference why a device was removed (and it may be actually removed after suspend anyway), so we drop the device and add it again later.

When it is added again, it's added with the default options. To get your options to stick you should add them to an xorg.conf.d snippet. See this link here for an example:
http://fedoraproject.org/wiki/Input_device_configuration#Example:_Wheel_Emulation_.28for_a_Trackpoint.29
Comment 2 maksym.telychko 2014-11-27 16:35:54 UTC
Thank for help. I configured wheel emulation via xorg.conf.d snippet.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.