This patch sets up the URB interval correctly when using interrupts via 
usbfs.  This is finally possible since the automagic resubmission is gone.



--- usb-2.5/drivers/usb/core/devio.c    Tue Oct  8 18:53:39 2002
+++ linux-bk/drivers/usb/core/devio.c   Mon Oct 28 23:56:23 2002
@@ -750,7 +750,7 @@
        struct async *as;
        struct usb_ctrlrequest *dr = NULL;
        unsigned int u, totlen, isofrmlen;
-       int ret;
+       int ret, interval = 0;
 
        if (copy_from_user(&uurb, arg, sizeof(uurb)))
                return -EFAULT;
@@ -837,6 +837,9 @@
 
        case USBDEVFS_URB_TYPE_INTERRUPT:
                uurb.number_of_packets = 0;
+               if (!(ep_desc = usb_epnum_to_ep_desc(ps->dev, uurb.endpoint)))
+                       return -ENOENT;
+               interval = ep_desc->bInterval;
                if (uurb.buffer_length > 16384)
                        return -EINVAL;
                if (!access_ok((uurb.endpoint & USB_DIR_IN) ? VERIFY_WRITE : 
VERIFY_READ, uurb.buffer, uurb.buffer_length))
@@ -868,6 +871,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++) {



-------------------------------------------------------
This sf.net email is sponsored by: Influence the future 
of Java(TM) technology. Join the Java Community 
Process(SM) (JCP(SM)) program now. 
http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0004en
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to