Re: [Touchd-devel] Touchd-devel Digest, Vol 3, Issue 5
Status: Alpha
Brought to you by:
tannewt
From: Alex K. <ale...@ho...> - 2008-06-25 23:01:58
|
Hello Henrik, I'm in the same boat as you. It was a tossup for me between having my media keys work, or having the touchpad work fully (since touchd overrides the keyboard driver as you mentioned). Since I mostly use an external mouse I went for the former. I've already talked to Scott about this, however I'll repost my thoughts for others too see (note I'm by no means an expert on this part of the kernel so the following could be misguided advice)... I think the cleanest way to do this is to put some (or all) of the code into a kernel module, much the same way that the previous appletouch driver did it (see drivers/input/mouse/appletouch.c). As you should see from the code, the driver registers itself with a particular interface on the device using the probe of the usb_driver interface (see http://mirror.linux.org.au/linux-mandocs/2.5.70/usb_driver.html). That way the kernel will only forward packets coming from the touchpad to the touchd driver, leaving the keyboard driver to do its own thing. Of course the most difficult question is what parts of touchd should go into the kernel module. Should all of it be handled in the kernel? Should the driver simply provide an interface to the events that a user level app can interpret? I frankly have no idea, and Scott indicated that he too struggled with finding what the best place was for the touchd code. My suggestion is to get on the linux-kernel mailing list and contact someone who makes the calls in that area of the linux source (you can also look at the source itself for contacting the appropriate maintainers). Scott, you're doing some fundamental work as multitouch interfaces seem to be the next big thing, and Linux should definitely not fall behind here. Hence if you can get some guidance/approval of the higher up chain of command, this will have a greater chance of getting into the source tree. Just my 2c, Alex > From: tou...@li... > Subject: Touchd-devel Digest, Vol 3, Issue 5 > To: tou...@li... > Date: Wed, 25 Jun 2008 12:03:49 -0700 > > Send Touchd-devel mailing list submissions to > tou...@li... > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/touchd-devel > or, via email, send a message with subject or body 'help' to > tou...@li... > > You can reach the person managing the list at > tou...@li... > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Touchd-devel digest..." > > > Today's Topics: > > 1. About the BCM5974 USB control interface (Henrik Rydberg) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 24 Jun 2008 19:56:40 +0200 > From: Henrik Rydberg <ry...@eu...> > Subject: [Touchd-devel] About the BCM5974 USB control interface > To: tou...@li... > Message-ID: <1214330200.3982.0.camel@alnilam> > Content-Type: text/plain > > Hello Scott, > > I have been following the development of touchd with interest. It seems > to me that one of the major hurdles in building this driver is the > somewhat complex relationship between the keyboard interface (USB > interface 0, endpoint 0x83) and the proprietary multitouch interface > (USB interface 1, endpoint 0x81). As far as I understand, there is no > known way to initialize the multitouch without also altering the > keyboard interface, resulting in extra work just getting the keyboard to > work properly. In fact, the keyboard mapping is what is currently > stopping me from using the touchd driver on my MacbookAir. It would of > course be great if the multitouch could be initialized without affecting > the keyboard interface - the question is whether this is possible. Do > you know? > > In order to get the multitouch going, this seems to be the (as of yet) > minimal configuration necessary: > > 1. claim interface 0, normally acting as a HID keyboard > > 2. claim interface 1, normally acting as an unknown HID touchpad > > 3. configure interface class: > usb_control_msg(udev,0x21,0x09,0x0300,0,{0x01,0x05},2,100) > > The multitouch is now available on endpoint 0x81. It is *not* possible > to omit step 1, which would be desired. I suspect you already tried this > extensively. > > I understand 3) is a set-interface-class command, I do not understand > what 0x0300 means, I suspect interface zero is called, and I do not know > what {0x01,0x05} means. Any ideas? > > Cheers, > Henrik Rydberg > > ps. on a separate note, I suspect interface 2, which acts as a perfectly > normal mouse, could be configured to show features such as double-click > and two-finger scrolling. ds. > > > > > > ------------------------------ > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > > ------------------------------ > > _______________________________________________ > Touchd-devel mailing list > Tou...@li... > https://lists.sourceforge.net/lists/listinfo/touchd-devel > > > End of Touchd-devel Digest, Vol 3, Issue 5 > ****************************************** _________________________________________________________________ If you like crossword puzzles, then you'll love Flexicon, a game which combines four overlapping crossword puzzles into one! http://g.msn.ca/ca55/208 |