[Bug 231058] no support for active PS/2 multiplexing results in erratic behaviour of Synaptics touchpad on HP 8560w
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri Aug 31 14:07:51 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231058
Bug ID: 231058
Summary: no support for active PS/2 multiplexing results in
erratic behaviour of Synaptics touchpad on HP 8560w
Product: Base System
Version: 11.2-RELEASE
Hardware: amd64
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: bugs at FreeBSD.org
Reporter: mifigiel at gmail.com
Created attachment 196747
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=196747&action=edit
relevant syslog entries
I've got a HP EliteBook 8560w which is equipped with a Synaptics touchpad and a
trackpoint. The trackpoint doesn't work at all (movements are repoted as button
events or not at all), neither is the touchpad's middle button reported.
This is one of the devices which respond to the special query, which is used to
identify it, with a middle byte of 0x46 instead of 0x47. The same hardware is
properly recognized and works on Linux (Ubuntu 18.04). Linux accepts only 0x47
(I checked the source). I've seen in psm.c that FreeBSD accepts the 0x46 id but
uses conservative defaults for settings, because the devices report garbage.
I think the root cause of the 0x46 id is that FreeBSD doesn't support active
PS/2 multiplexing.
As a PoC I added functions to enable/disable the active multiplexing mode of
the i8042 and in multiplexing mode I queried all four aux ports. I got two
devices, and one of them sends 0x46 but the other sends a 0x47 in the middle
byte.
I attach the relevant portion of syslog messages (line 19: the first device,
line 34 the second device, from 36 on the normal initialization).
I found a document titled "Active PS/2 Multiplexing", version 1.1, from 1999
which describes this mode of operation. It hints on the fact, that a
multiplexing controller operated in legacy (non-multiplexing) mode with more
than one aux device might garble some of the data passed to the host. I think,
that's what happens on my machine.
I'm not sure if it is really worth the effort to implement the multiplexing, as
I suspect that the few machines which use it will die of old age pretty soon,
but over the weekend I'll try to modify the psm.c to operate in multiplexing
mode with only one enabled device.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list