Re: [PATCH v2] usb: cdc-wdm: Add device-id for Huawei 3G/LTE modems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux