On Mon, 2005-11-14 at 23:36 +0000, Daniel Drake wrote: > I'm sorry to throw a mass of sniffed data and early driver code at the list, > but I've been working on this problem for a few days now, with no success. > I'm > hoping that someone might be able to spot an obvious mistake or offer > suggestions on things to try :) > > I'm writing a driver for a fingerprint reader found in a USB keyboard. > The keyboard has 3 interfaces, two HID (presumably one for keyboard and one > for wireless mouse), and one which is the fingerprint reader. I'm working on > a > driver for the 3rd interface, obviously. > > The 3rd interface has two endpoints, one bulk in and one interrupt in. > > The UsbSnoop log I'm attaching is from the 3rd interface and shows a sequence > of events like: > > 1. configuration setting, descriptor fetching > 2. a series of synchronous control commands > 3. an async transfer down the bulk-in endpoint fired > 4. an async interrupt transfer fired on the int-in endpoint > 5. more control commands including upload of firmware > 6. short pause > 7. interrupt transfer from step 4 returns > 8. re-fire interrupt > 9. more control commands > 10. pause > 11. bulk command from step 3 returns > 12. ....... > > My driver clones the sequence 1-6 just fine, but I don't get the response > from > either bulk command. I've noticed that despite this, the callback functions > *do* get executed when I unplug the device - is this normal? > > The control commands work fine, I get the desired responses and the device > even visibly reacts to some commands (e.g. turning the light on). I'm > wondering if it's just something I'm doing wrong with bulk transfers, but > I've > looked over it a good few times now... > > I'm attaching the UsbSnoop logs on the fingerprint interface, semi-annotated > Linux usbmon logs on the port when HID support is disabled (i.e. a sniff of > my > own driver), and the driver code so-far. I'm also attaching the "lsusb -v" > output for the device. > > Note that the Windows driver gets the flag bits wrong in the bulk commands - > it appears to be sending data out of the in endpoints - this is apparently > common in Windows drivers, the windows API must fix that up automatically. > > I haven't focused much on what the other interfaces are doing, as they are > HID-compliant I don't think they are doing anything special, and I doubt (in > terms of implementing the components in the hardware) that sending commands > to > another interface would affect the fingerprint reader... I guess this is the > next thing to check, if nothing emerges at this point. > > I'd be very grateful to anyone who has any ideas here... > > Thanks, > Daniel <lines deleted>
Did you set the configuration, interface and altsetting before the bulk read command? Also putting this info on a website is maybe a better idea for sharing info. No info about the used fingerprint chip i assume? Depending on your plans for such a device, writing a sane backend could be another option (scanner/webcam). -- -------- m.vr.gr. Gerard Klaver ------------------------------------------------------- This SF.Net email is sponsored by the JBoss Inc. Get Certified Today Register for a JBoss Training Course. Free Certification Exam for All Training Attendees Through End of 2005. For more info visit: http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel