On Monday 11 February 2008 11:53:12 David Brownell wrote: > They use two interfaces (and potentially more): > > - Control ... the one passed to probe(), possibly with one interrupt > endpoint used to send status to the host. Descriptors are coupled > to this interface, including the "union" descriptor (more below). > > - Data ... the one with in/out endpoints (and sometimes, altsettings). > > CDC Union descriptors are used to couple data interfaces to control > interfaces. The bind() is what parses the CDC descriptors then, among > other things, figures out which data interface to use ... and thus, > nothing before bind() can figure out which endpoints to use.
Thanks. This is kind of strange as my smartphone interface does look something like you describe. One interface with interrupt only and another one with in/out (see below). Does this mean my device should be supported by another (CDC) driver? Still it is "working" with the rndis_host driver ... [EMAIL PROTECTED]:~$ sudo lsusb -v -d 0bb4:0bce Bus 003 Device 017: ID 0bb4:0bce High Tech Computer Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 1 ? bDeviceProtocol 1 Microsoft ActiveSync bMaxPacketSize0 64 idVendor 0x0bb4 High Tech Computer Corp. idProduct 0x0bce bcdDevice 0.00 iManufacturer 1 HTC iProduct 2 Generic RNDIS iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 62 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 239 Miscellaneous Device bInterfaceSubClass 1 ? bInterfaceProtocol 1 Microsoft ActiveSync iInterface 0 Class specific interface descriptor for class 239 is unsupported Class specific interface descriptor for class 239 is unsupported Class specific interface descriptor for class 239 is unsupported Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered) [EMAIL PROTECTED]:~$ - To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html