On 2018-06-20 11:35:05 [-0400], Alan Stern wrote: > > diff --git a/include/linux/usb.h b/include/linux/usb.h > > index 4cdd515a4385..c3a8bd586121 100644 > > --- a/include/linux/usb.h > > +++ b/include/linux/usb.h > > @@ -1657,7 +1657,8 @@ static inline void usb_fill_bulk_urb(struct urb *urb, > > * the endpoint descriptor's bInterval value. > > * > > * Initializes a interrupt urb with the proper information needed to submit > > - * it to a device. > > + * it to a device. This function can also be used to initialize an isochronous > > + * urb. > > No, no! This function can _help_ initialize an isochronous URB, but > that's all. It would be better to create an explicit > usb_fill_isoc_urb() routine, and even that would have to be incomplete. Yes, incomplete. I read incomplete as some additional fields have to be set which are not set yet. But for FS you write… > There are two problems with using usb_fill_int_urb() to initialize an > isochronous URB: > > The calculation of the interval value is wrong for full-speed > devices. Why wrong? > The routine does not set urb->number_of_packets or > urb->iso_frame_desc[]. Yes. > Alan Stern Sebastian