Dan Williams <dcbw@xxxxxxxxxx> writes: > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 1 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 255 Vendor Specific Class > bInterfaceSubClass 255 Vendor Specific Subclass > bInterfaceProtocol 255 Vendor Specific Protocol > iInterface 0 > ** UNRECOGNIZED: 05 24 00 10 01 > ** UNRECOGNIZED: 05 24 15 00 01 > ** UNRECOGNIZED: 05 24 06 01 01 > ** UNRECOGNIZED: 15 24 12 20 01 98 b0 6a 49 b0 9e 48 96 94 46 d9 9a 28 ca 4e 5d > ** UNRECOGNIZED: 06 24 13 00 01 10 These extra descriptors are sort of interesting when it comes to reliably detecting the correct interfaces on the Gobi devices. Lets for a moment assume that these are CDC devices. Then you've got: 05 24 00 10 01 => CDC Header version 1.10 05 24 15 00 01 => CDC OBEX version 1.00 05 24 06 01 01 => CDC Union master=1, slave=1 (weird...) 15 24 12 20... => CDC MDLM with a GUID 06 24 13 00 01 10 => MDLM detail descriptor > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 2 > bAlternateSetting 0 > bNumEndpoints 3 > bInterfaceClass 255 Vendor Specific Class > bInterfaceSubClass 255 Vendor Specific Subclass > bInterfaceProtocol 255 Vendor Specific Protocol > iInterface 0 > ** UNRECOGNIZED: 05 24 00 10 01 > ** UNRECOGNIZED: 04 24 02 02 > ** UNRECOGNIZED: 05 24 01 03 02 > ** UNRECOGNIZED: 05 24 06 02 02 > ** UNRECOGNIZED: 15 24 12 20 01 98 b0 6a 49 b0 9e 48 96 94 46 d9 9a 28 ca 4e 5d > ** UNRECOGNIZED: 06 24 13 00 01 10 Much the same with additionally: 04 24 02 02 => CDC ACM with line coding and serial state capabilities 05 24 01 03 02 => CDC Call Management using data interface=2 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 3 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 255 Vendor Specific Class > bInterfaceSubClass 255 Vendor Specific Subclass > bInterfaceProtocol 255 Vendor Specific Protocol > iInterface 0 > ** UNRECOGNIZED: 05 24 00 10 01 > ** UNRECOGNIZED: 05 24 15 00 01 > ** UNRECOGNIZED: 05 24 06 03 03 > ** UNRECOGNIZED: 15 24 12 20 01 98 b0 6a 49 b0 9e 48 96 94 46 d9 9a 28 ca 4e 5d > ** UNRECOGNIZED: 06 24 13 00 01 30 similar to interface 1, except that the CDC MDLM detail data is 30 instead of 10. Whatever that means. But judging from your description, this probably tells whether it's a DIAG or NMEA port. So all these three seem to have a CDC Union descriptor with master == slave. An attempt to describe the combined interface type? Interface 2 is probably just a CDC ACM interface in disguise, which matches your description of it. Hmm, looking at the Gobi driver and what you write, the correct interface to use for rmnet/qmi is 0, which is the one *without* any such CDC descriptors. Well, we can certainly make a rule of that as well :-) The UML290 should be easy to match precisely as it uses different subclass codes for the different functions. Bjørn -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html