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?


Attachment: usbfs-0228.patch
Description: Binary data

Reply via email to