>We have on our platforms, some touch pads for which we would like to
>expose some additional configuration.
>
>usbms is pretty limited in what it can do.
Right.
>We have modified usbms to directly support some configuration via HID
>report messages to support configuration of touch pad behavior.
>(Especially the synaptics variety, which can support configuration of
>scrolling, double tapping, etc.) Our hardware also has a special
>support for configuring the middle scroll buttons as either a 3rd mouse
>button or as scroll buttons. (Basically, we are using a preexisting
>case with 4 mouse buttons arranged along compass points.)
Cool.
At Sun, many of have Ferraris which have a synaptics touchpad.
THe Ferarri ones come with:
- 2 mouse buttons
- 4 scroll (up/down/left/right) buttons
I've written the X server mouse module such that it can interpret
such events but it should indeed be moved into the kernel proper.
>What I'd like to do instead of shipping our own modified version of
>usbms, is add support to usbms for passing raw HID events. Basically,
>an stream could be put into some kind of "raw" mode where HID messages
>are passed upstream un-massaged.
>
>Would these diffs have broader interest? Anyone else want to have the
>ability to configure synaptics touch pads, etc. on their boxes? (I'm
>not proposing that we would necessarily expose our tools for configuring
>these touch pads, but once the API is there someone could easily write
>one that works for the major touch pads on the market.)
You can get direct events by opening the specific USB or PS/2 mouse
directly as I do with my driver.
It seems that the configuration could be done through a side band protocol
(opening the device directly) but also by teaching the kernel about these
specific devices.
THe interface is a bit troublesome as the devices are all connected under
a virtual mouse; so you can't just switch the mouse to "raw" because
there could be multiple.
The solution I wrote isn't perfect either because it requires specific
X configuration in order to support both a USB mouse and a touchpad at the
same time.
Since the OS allows direct configuration of the individual mice through the
non-virtual pathname, all that is needed is to teach the kernel about
the Synaptics mouse, configure it an dthen have the events be handled further
by the virtual mouse.
Casper