On 1/6/18 22:50 , Timur Kristóf wrote:
On Thu, 2018-05-31 at 13:44 -0700, Laura Abbott wrote:
> On 05/24/2018 04:13 PM, Timur Kristóf wrote:
>> Hi,
>>
>> On the XPS 13 9360 and 9370 xinput sees two touchpads instead of
>> one:
>> ⎡ Virtual core pointer id=2 [master
>> pointer (3)]
>> ⎜ ↳ Virtual core XTEST
>> pointer id=4 [slave pointer (2)]
>> ⎜ ↳ DELL07E6:00 06CB:76AF
>> Touchpad id=12 [slave pointer (2)]
>> ⎜ ↳ SynPS/2 Synaptics
>> TouchPad id=17 [slave pointer (2)]
>>
>> dmesg also gives me the following:
>>
>> [ 1.429811] psmouse serio1: synaptics: Your touchpad (PNP:
>> DLL07e6
>> PNP0f13) says it can support a different bus. If i2c-hid and hid-
>> rmi
>> are not used, you might want to try setting
>> psmouse.synaptics_intertouch to 1 and report this to
>> linux-input(a)vger.kernel.org.
>>
>> The Dell one is the real touchpad, the other one is an artifact of
>> the
>> psmouse driver. Weird touchpad freezes and jittering issues can be
>> observed when both of these devices are there. The general advice
>> on
>> the web is to blacklist the psmouse driver. (This is also published
>> by
>> Dell as a .deb package which contains a config file doing just
>> this.)
>>
>> However, on Fedora I cannot blacklist the psmouse driver because it
>> is
>> compiled built-in instead of as a module. Could you guys change the
>> Fedora kernel config to compile it as a module instead?
>>
>> Thanks & best regards,
>> Timur
>
> So assuming nobody else has objections, I think it's okay to at
> least try this on rawhide and see if it uncovers any other problems.
>
> Thanks,
> Laura
>
Looking into this a bit more, the root cause of this issue is that the
touchpad is wired up in such a way that it is accessible on both PS/2
and I2C. I2C is preferred and used by i2c-hid but at the same time the
PS/2 interface is also picked up by psmouse. Thus, Xorg sees the two
interfaces as two different devices.
That is fairly standard and doesn't matter. This was also the case for
earlier SMBus implementation but the common thing was that the PS/2
device never actually sent events. So it was only an issue for some
tools that expected only one touchpad to exist (e.g. synclient).
Check with evemu-record whether the device sends events. if not, then
Xorg is definitely not confused by it. If it does and both event nodes
send events then yes, we have a kernel bug there.
Solution would be to somehow remove the psmouse-detected device node
from the system when i2c-hid detects the same device. Is this possible?
This is more an upstream discussion, CC-ing benjamin for details.
I do recommend filing a bug with an evemu recording of a
freezing/jittering interaction. Lots of touchpad processing happens in
userspace and this could be the cause of pressure thresholds set too
high. CC me on that bug and I can have a look. sudo libinput
debug-events --verbose will also show extra information including things
when a touch ended based on its pressure information.
Cheers,
Peter