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

Reply via email to