Here is a patch that adds code from 2.6.* to pass the interval is ISO
urbs.  There is a check in hcd.c that requires this value to be
non-zero.

-- 
Don Reid


--- devio.c.orig        Fri Feb 13 11:23:47 2004
+++ devio.c     Wed Feb 18 12:08:58 2004
@@ -784,7 +784,7 @@
        struct async *as;
        struct usb_ctrlrequest *dr = NULL;
        unsigned int u, totlen, isofrmlen;
-       int ret;
+       int ret, interval = 0;
        int intf = -1;
 
        if (copy_from_user(&uurb, arg, sizeof(uurb)))
@@ -846,6 +846,10 @@
                break;
 
        case USBDEVFS_URB_TYPE_ISO:
+               if (!(ep_desc = usb_epnum_to_ep_desc(ps->dev, uurb.endpoint)))
+                       return -ENOENT;
+               interval = (1 << (ep_desc->bInterval - 1));
+
                /* arbitrary limit */
                if (uurb.number_of_packets < 1 || uurb.number_of_packets > 128)
                        return -EINVAL;
@@ -904,6 +908,7 @@
        as->urb.setup_packet = (unsigned char*)dr;
        as->urb.start_frame = uurb.start_frame;
        as->urb.number_of_packets = uurb.number_of_packets;
+       as->urb.interval = interval;
         as->urb.context = as;
         as->urb.complete = async_completed;
        for (totlen = u = 0; u < uurb.number_of_packets; u++) {


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to