In section 9.6.6 of the USB 2.0 spec, the text describing the endpoint descriptor specifies several things that aren't handled right by the "devices" file.
For example, it doesn't handle full speed ISO, uses
the wrong units for high speed transfers, and lies about
"high bandwidth" endpoints (high speed only).
This patch fixes several bugs in presentation of endpoint
descriptor data:
- Computes and displays the interval correctly.
- Changes interval units from ms to us, so it can
work with high speed transfers (125 us is a fine
interval).
- Removes 3 digit range for intervals, since a full
speed ISO endpoint can specify 2^15 milliseconds
(32 seconds) between transfers. (Variable length
field is last on the line, like driver name.)
- Shows the correct maximum packet size for high
bandwidth endpoints.
- Shows high bandwidth endpoints with something like
"1024*3" for maxpacket size; other endpoints just
have two extra spaces there.
That means this patch could break some programs; I don't
know why any would bother parsing such lines. The change
should be easily handled by detecting parsing errors.
Patch is against 2.5.5 ... it should probably go into 2.4.19
with other USB 2.0 updates, but maybe that should wait
a bit till we see if this breaks any tools runing on 2.5.
- Dave
p.s. I'm tempted to also submit a patch to highlight the
selected alternate interface settings in the same way
the selected configuration is highlighted. Comments?
usbfs-0228.patch
Description: Binary data
