[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