John Homppi wrote:
Long description follows..... the code to review is at the end of the message.
===========
I have a device that uses interrupt OUT endpoints and I need a Linux driver. It seems to me that the existing USB driver stack does not support OUTPUT on interrupt end-points.
Actually it does ... at least so far as some basic test programs show. But there are issues to cope with on 2.4
I cloned the usb_bulk_msg routine in message.c to create a usb_int_msg routine. This seemed to be the easiest way to add Interrupt Out capablity without breaking anything (and without understanding the USB internals)
I then built a simple driver based on the usbtest.c skeleton program.
My driver appears to operate OK but I have been unable to fully test it since
work got really busy.
I tried to port the design back to the 2.4.20 kernel but it failed miserably. Perhaps my entire approach is invalid.
Finish getting new code to work on 2.5 first, THEN backport ... :) The approach is fine, but you'll hit stumbling blocks on 2.4 since there are issues with interrupt OUT handling there. If you've got a good 2.5-compatible solution, resolving the relevant 2.4 issues shouldn't be too hard.
PROBLEM: The last parameter to the usb_fill_int is the interval. Using zero supposedly means one-shot, but this is reported as an invalid argument?
So far that's a UHCI-only feature. Ben Herrenschmidt recently posted a patch for OHCI, you might want to give that a try. (In 2.5, all interrupt transfers are one-shot, and the period is just the period.) Or: don't try using one-shot, and instead just make sure that the messages you send are NOPs. - Dave ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
