Hello All,
Recently we saw a problem where the device reset will fail due to a
configuration descriptor check in hub.c:5600.
if (memcmp(buf, udev->rawdescriptors[index], old_length)
!= 0) {
dev_dbg(&udev->dev, "config index %d changed (#%d)\n",
index,
((struct usb_config_descriptor *) buf)->
bConfigurationValue);
changed = 1;
break;
}
The descriptors returned from the device have a different iInterface. I
checked the usb spec and couldn’t find anything that says iInterface can’t
change. I don’t have the source for the device, but I think it’s probably
generating the interface string each reset and returning a different index for
it (“ADB interface”).
Has anyone else seen this? Does the spec guarantee that iInterface should
never change between device resets?
Thanks,
Seth