>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

Reply via email to