> > > Hi Jack, > > > > I am curious what features are broken if the functions are added with > > not planned order? > > Hi Peter, > > This is mainly an issue for devices with functions that use vendor- specific > instead of standard class/subclass IDs for their interface descriptors. Android > ADB and Qualcomm QMI are a couple examples. So host interface drivers > would only be able to install or bind based on matching VID/PID and interface > position only. This is true for both Windows as well as Linux (see > USB_DEVICE_INTERFACE_NUMBER). > > So if the gadget's function bind order gets jumbled up from the intended order, > the resulting assigned interface numbers would be different and the host would > not match its drivers to the correct interface. Instead we see the host driver > gets bound but the endpoints it communicates with are wrong as they are for a > completely different interface. > > Thanks, > Jack Thanks for your information, jack. But does Android ADB has specific host driver, I am assumed it uses drivers/usb/core/devio.c, am I wrong? Peter