diff options
Diffstat (limited to 'drivers/staging/frontier/README')
| -rw-r--r-- | drivers/staging/frontier/README | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/drivers/staging/frontier/README b/drivers/staging/frontier/README new file mode 100644 index 00000000000..cd07af22406 --- /dev/null +++ b/drivers/staging/frontier/README @@ -0,0 +1,47 @@ +This directory contains the Linux USB Tranzport and Alphatrack Kernel drivers. + +See http://www.frontierdesign.com for details on these devices. + +Userspace test code is available from + +git://toutatis.isc.org/home/d/src/git/frontier.git + +At present the tranzport does reads/writes of 8 byte cmds to +/dev/tranzport0 to control the lights, screen, and wheel. + +At present the alphatrack accepts reads/writes of 12 byte cmds to +/dev/tranzport0 to control the lights, screen, fader and touchpad. + +The tranzport driver provides a rudimentary sysfs interface for the status of +the device and a writable parameter for turning wheel compression on and off. + +The API is nothing more than the USB commands issued to the device. Why? + +The control wheel/fader can generate events far too quickly for +a typical userspace application to keep up with them via libusb. Input +needs to be 100% accurate and fast in order for the alphatrack or tranzport +to be useful. + +UIO would be useful except that usb disconnect events need +to be handled correctly. + +A sysfs interface is perfect for simple userspace apps to do fun things with +the lights and screen. But it's fairly lousy for handling input events and +very lousy for watching the state of the shuttle wheel. + +A linux input events interface is great for the input events and shuttle wheel. +* It's theoretically OK on LEDs. +* A fader can be mapped to an absolute mouse device. +* But there is no LCD support at all, or fader feedback support in that API + +So, thus, these stubby drivers exist. + +In the end this could be driven by a midi layer, which handles all those +cases via a well defined API, but - among other things - is slow, doesn't do +flow control, and is a LOT of extra work, none of which is required at +the kernel level (probably). Frankly, I'd like to keep the +core driver simple because the only realtime work really required is +the bottom half interrupt handler and the output overlapping. + +Exposing some sort of clean api to userspace would be perfect. What that +API looks like? Gah. beats me. |
