Ok, I've just completed a thorough set of tests regarding my previously described packet size problem with my USB ethernet (adsl) driver. It appears to me that either a) UHCI just can't perform like OHCI, or b) the UHCI driver has problems. My information is reported below. I'm running on RedHat 7.2 with their stock kernel - 2.4.7-10.
All transfers are on a bulk-in endpoint. URBs are queued with USB_QUEUE_BULK flag set. All URBs have their transfer_buffer_length set to 3392 bytes (the least common multiple of ATM cell size and bulk transfer size - 53*64). These transfers are all responses from pinging another machine with ping data sizes of 4k and 16k. This is the simplest way to illustrate and reproduce the problem. The problem affects virtually all traffic, not just traffic related to pings. HCD URBs InWhole InCATC InURB Ping? 1 UHCI 1 4717 3127 or 3074 3127 or 3074 No 2 UHCI 64 4717 3127 or 3074 3010 or 3063 No 3 OHCI 1 4717 4717 3392 and 1325 Yes 4 OHCI 64 4717 4717 3392 and 1325 Yes 5 OHCI 1 18868 3392*5 and variable 3392 and variable No 6 OHCI 64 18868 18868 3392*5 and 1908 Yes Some notes on the table: URBs = number of URBs queued on the pipe InWhole = entire size of data expected to receive InCATC = size of "bulk in" transfers as seen in CATC trace InURB = value of "actual_length" in the URBs returned Ping? = whether or not the ping was successful I would expect that from a USB driver's perspective, what he gets in URBs should be the same regardless of what the HCD is. Is this expectation wrong? I can accept the fact that for case #5 - we're simply running out of time to receive all of the data. By the time we've queued up the URB to get the last chunk of data, we've lost some data? Or, more likely, we've lost some data somewhere from the first to the last chunk, but since there is lots of data, the buffers are all full the urb until the last one. Anybody have any clues here? Anything else I can provide that will help? Thanks, -Chris _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel