Bug 1106922 - synaptics.conf in xorg.conf.d conflicts with wacom driver
Summary: synaptics.conf in xorg.conf.d conflicts with wacom driver
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: libwacom
Version: 20
Hardware: x86_64
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Peter Hutterer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-06-09 18:36 UTC by Sinan H
Modified: 2014-07-16 07:00 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2014-06-13 00:57:44 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Xorg.0.log (30.85 KB, text/plain)
2014-06-09 18:36 UTC, Sinan H
no flags Details
udevadm info db (146.47 KB, text/plain)
2014-06-13 15:23 UTC, Sinan H
no flags Details

Description Sinan H 2014-06-09 18:36:03 UTC
Created attachment 905617 [details]
Xorg.0.log

Description of problem:
thinkpad Yoga S1 has a wacom digitizer which was correctly detected on a vanilla F20 install. Updating to current makes it disappear. It doesnt show anymore in gnome, xinput nor xsetwacom, altough is detected by xorg and libwacom. 

Heres xinput output, un-updated F20:

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                        	id=9	[slave  pointer  (2)]
⎜   ↳ Wacom ISDv4 EC Pen stylus               	id=11	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=13	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=14	[slave  pointer  (2)]
⎜   ↳ Wacom ISDv4 EC Pen eraser               	id=16	[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)]
    ↳ Integrated Camera                       	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=15	[slave  keyboard (3)]

and up-to-date:
$ xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                        	id=9	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=12	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=13	[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)]
    ↳ 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)]

in both cases it is detected by libwacom & xorg though:
$ libwacom-list-local-devices 
[Device]
Name=Wacom ISDv4 EC
DeviceMatch=usb:056a:00ec;
Class=ISDV4
Width=0
Height=0
IntegratedIn=Display;System;
Styli=0xfffff;0xffffe;

[Features]
Reversible=false
Stylus=true
Ring=false
Ring2=false
Touch=true
StatusLEDs=
NumStrips=0
Buttons=0

Version-Release number of selected component (if applicable):
$ rpm -qa | grep wacom
libwacom-0.8-2.fc20.x86_64
xorg-x11-drv-wacom-0.23.0-5.fc20.x86

Comment 1 Peter Hutterer 2014-06-11 03:07:05 UTC
Can you attach a log from the updated xorg?

I can't think of a reason why xinput wouldn't show the device if it's been added by the server (though if xinput can't see it then gnome and xsetwacom don't either, so at least that part is consistent).

Comment 2 Sinan H 2014-06-11 10:09:17 UTC
That was suprisingly helpful :) 
I thought that submitted log was the latest, but made me discover that somewhere along the line /var/log/Xorg.0.log got deprecated. So the latest log from journald obviously points to the problem :

------------------
juin 11 11:18:52 yogi gdm-Xorg-:0[4785]: (II) Using input driver 'synaptics' for 'Wacom ISDv4 EC Pen'
juin 11 11:18:52 yogi gdm-Xorg-:0[4785]: (**) Wacom ISDv4 EC Pen: always reports core events
juin 11 11:18:52 yogi gdm-Xorg-:0[4785]: (**) Option "Device" "/dev/input/event13"
juin 11 11:18:52 yogi gdm-Xorg-:0[4785]: (EE) synaptics: Wacom ISDv4 EC Pen: Synaptics driver unable to detect protocol
juin 11 11:18:52 yogi gdm-Xorg-:0[4785]: (EE) PreInit returned 11 for "Wacom ISDv4 EC Pen"
juin 11 11:18:52 yogi gdm-Xorg-:0[4785]: (II) UnloadModule: "synaptics"
juin 11 11:18:52 yogi gdm-Xorg-:0[4785]: (II) config/udev: Adding input device Wacom ISDv4 EC Pen (/dev/input/mouse2)
juin 11 11:18:52 yogi gdm-Xorg-:0[4785]: (II) No input driver specified, ignoring this device.
juin 11 11:18:52 yogi gdm-Xorg-:0[4785]: (II) This device may have been added with another device file.
----------------

so synaptics driver claims my wacom. I've got a synaptics.conf in xorg.conf.d (which was happily working since day 1 in harmony with wacom though) Sure enough, taking this out make the wacom come back.

thats the relevant part of synaptics.conf:
Section "InputClass"
        Identifier      "Touchpad"                       
        MatchIsTouchpad "yes"                            
        Driver          "synaptics"                      
        Option          "MinSpeed"              "0.5"
[...]
 
So the bug is that this started matching also the wacom, nuking its initialization. Im 100% sure that it was working without conflict few updates ago.

Comment 3 Sinan H 2014-06-12 10:37:42 UTC
oh, and the workaround is to replace in synaptics.conf : 

  Driver          "synaptics" 

with 

  MatchDriver     "synaptics"

Comment 4 Peter Hutterer 2014-06-13 00:57:44 UTC
closing this as NOTABUG, local configuration caused the issue.

I'd be interesting to see the udevadm info --export-db output for the device, if it has ID_INPUT_TOUCHPAD set then that would cause the MatchIsTouchpad line to trigger. Unfortunately the simple matching isn't always that accurate, with your change to MatchDriver you're now letting the driver assignment be done by the match rules we ship with the packages, and then you just add your configuration on top of that. Which is how you should do it anyway :)

Comment 5 Sinan H 2014-06-13 15:13:52 UTC
yep, it's much saner to match the driver than to enforce it. Unfortunately, the .conf I've used is all over the net in several synaptics tutos. Anyway, hope that this report wil shed the light if other people trigger this.

Comment 6 Sinan H 2014-06-13 15:23:23 UTC
Created attachment 908620 [details]
udevadm info db

ID_INPUT_TOUCHPAD and _TABLET are both set for wacom.

Comment 7 Peter Hutterer 2014-07-16 07:00:59 UTC
http://who-t.blogspot.com.au/2014/03/stacking-xorgconfd-snippets.html is relevant here. We can't rid the internet of wrong or bad tutorials, unfortunately...


Note You need to log in before you can comment on or make changes to this bug.