On Wed, Sep 01, 2004, David Brownell <[EMAIL PROTECTED]> wrote: > On Tuesday 31 August 2004 12:50 pm, Alan Stern wrote: > > > > Anyway, could anyone comment on the problem I discovered ? > > > Could it be a UHCI/root hub problem ? Or is it certain that the > > > device is faulty ? If the device is faulty, what should be done ? > > > Could the buffer size be lowered from > > > 9 to 8, or is it against the kernel policies to make such a change for a > > > broken device ? > > > > It's certainly not the kernel's fault. And the buffer size cannot be > > lowered back to 8, as raising it to 9 was necessary to work with other > > (slightly broken) devices. > > > > Another possibility is to increase the buffer to 64 bytes. > > Or to lower it to 4 bytes ... I was going to send in a patch that did that, > but the 9 byte patch went in first. The config descriptor's full size is > bytes index 2 and 3 in the buffer. > > A 4 byte request forces a short read in the same way 9 bytes does, > but 8 bytes does not. And a 9 byte request is prone to two different > families of boundary case bugs: 8 byte boundary for packet size, > and 10 byte boundary for the next descriptor in the group.
I'm pretty sure the code used to request 4 bytes a long time ago, but it was changed to deal with out-of-spec devices, to the 8 bytes it's been for a while now. I think the Linux code should try to imitate what Windows does. Anyone have any traces? JE ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
