even though the device does not support strings (index == 0 in the
device descriptor), and this (justifiably ?) unexpected request
upsets the firmware.
That looks like its trying to get string descriptor zero.
If the device did implement any string descriptors at all, ie any of
the string index fields in the other descriptors are non zero, it
must respond to this request. This is a request for the table of
supported language IDs.
As the device does not implement any string descriptors at all, a
STALL would be a more appropriate response from the device, however
in this circumstance the host should not be asking for the
descriptor. I always put more weight on host behaving properly, but
the device is not exactly correct.
A STALL response would have made things much more obvious than a non response.
Thanks very much Barry for your input. I am going to remove this
LoadDescriptor call from the driver and the author of the firmware is
going to make the device more liberal with the GetDescriptor requests