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