• Alan Stern's avatar
    [PATCH] USB: Initially read 9 bytes of config descriptor · a8a5d436
    Alan Stern authored
    This patch reads the full 9 bytes of a configuration descriptor during
    enumeration rather than just the first 8 bytes.  That's how Windows does
    it, and today I ran across a device that doesn't work properly when asked
    to send only 8 bytes worth.  I doubt very much this will cause any
    problems with currently-working devices; since the descriptor itself is 9
    bytes long and since the devices are most likely to expect a 9-byte
    request, anything that can handle an 8-byte request should have no
    difficulty.  (Also, some debugging messages have been slightly improved.)
    
    Incidentally, USB traces taken from Windows 2000 and Windows XP show that
    when those operating systems retrieve a string descriptor during
    enumeration, they do so by requesting a 255-byte transfer.  They do not
    first ask just for the initial 2 bytes (which contain the actual length)
    and then ask for the actual length, which is what we do.  Interestingly,
    back in 2.4 we _did_ do things the same as Windows.
    a8a5d436
config.c 14.5 KB