diff options
| author | Greg Suarez <gsuarez@smithmicro.com> | 2012-10-22 06:56:29 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2012-10-23 02:40:10 -0400 |
| commit | 51615edd0a41b36f69858b9be1fbbf6a3de84f82 (patch) | |
| tree | 79d5cf1a51d2ad38b185155e48951ec2dd2e6ae9 /include/linux/usb | |
| parent | dad957d7386873c600a365a9d0dcc7cc73f36883 (diff) | |
USB: cdc: add MBIM constants and structures
Based on revision 1.0 of "Universal Serial Bus Communications
Class Subclass Specification for Mobile Broadband Interface
Model" available from www.usb.org
Signed-off-by: Greg Suarez <gsuarez@smithmicro.com>
[bmork: added DSS defines]
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/usb')
| -rw-r--r-- | include/linux/usb/cdc.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/linux/usb/cdc.h b/include/linux/usb/cdc.h index 81a927930bfd..f35aa0a338c7 100644 --- a/include/linux/usb/cdc.h +++ b/include/linux/usb/cdc.h | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #define USB_CDC_SUBCLASS_OBEX 0x0b | 19 | #define USB_CDC_SUBCLASS_OBEX 0x0b |
| 20 | #define USB_CDC_SUBCLASS_EEM 0x0c | 20 | #define USB_CDC_SUBCLASS_EEM 0x0c |
| 21 | #define USB_CDC_SUBCLASS_NCM 0x0d | 21 | #define USB_CDC_SUBCLASS_NCM 0x0d |
| 22 | #define USB_CDC_SUBCLASS_MBIM 0x0e | ||
| 22 | 23 | ||
| 23 | #define USB_CDC_PROTO_NONE 0 | 24 | #define USB_CDC_PROTO_NONE 0 |
| 24 | 25 | ||
| @@ -33,6 +34,7 @@ | |||
| 33 | #define USB_CDC_PROTO_EEM 7 | 34 | #define USB_CDC_PROTO_EEM 7 |
| 34 | 35 | ||
| 35 | #define USB_CDC_NCM_PROTO_NTB 1 | 36 | #define USB_CDC_NCM_PROTO_NTB 1 |
| 37 | #define USB_CDC_MBIM_PROTO_NTB 2 | ||
| 36 | 38 | ||
| 37 | /*-------------------------------------------------------------------------*/ | 39 | /*-------------------------------------------------------------------------*/ |
| 38 | 40 | ||
| @@ -53,6 +55,7 @@ | |||
| 53 | #define USB_CDC_DMM_TYPE 0x14 | 55 | #define USB_CDC_DMM_TYPE 0x14 |
| 54 | #define USB_CDC_OBEX_TYPE 0x15 | 56 | #define USB_CDC_OBEX_TYPE 0x15 |
| 55 | #define USB_CDC_NCM_TYPE 0x1a | 57 | #define USB_CDC_NCM_TYPE 0x1a |
| 58 | #define USB_CDC_MBIM_TYPE 0x1b | ||
| 56 | 59 | ||
| 57 | /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ | 60 | /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ |
| 58 | struct usb_cdc_header_desc { | 61 | struct usb_cdc_header_desc { |
| @@ -187,6 +190,21 @@ struct usb_cdc_ncm_desc { | |||
| 187 | __le16 bcdNcmVersion; | 190 | __le16 bcdNcmVersion; |
| 188 | __u8 bmNetworkCapabilities; | 191 | __u8 bmNetworkCapabilities; |
| 189 | } __attribute__ ((packed)); | 192 | } __attribute__ ((packed)); |
| 193 | |||
| 194 | /* "MBIM Control Model Functional Descriptor" */ | ||
| 195 | struct usb_cdc_mbim_desc { | ||
| 196 | __u8 bLength; | ||
| 197 | __u8 bDescriptorType; | ||
| 198 | __u8 bDescriptorSubType; | ||
| 199 | |||
| 200 | __le16 bcdMBIMVersion; | ||
| 201 | __le16 wMaxControlMessage; | ||
| 202 | __u8 bNumberFilters; | ||
| 203 | __u8 bMaxFilterSize; | ||
| 204 | __le16 wMaxSegmentSize; | ||
| 205 | __u8 bmNetworkCapabilities; | ||
| 206 | } __attribute__ ((packed)); | ||
| 207 | |||
| 190 | /*-------------------------------------------------------------------------*/ | 208 | /*-------------------------------------------------------------------------*/ |
| 191 | 209 | ||
| 192 | /* | 210 | /* |
| @@ -332,6 +350,11 @@ struct usb_cdc_ncm_nth32 { | |||
| 332 | #define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */ | 350 | #define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */ |
| 333 | #define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */ | 351 | #define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */ |
| 334 | 352 | ||
| 353 | #define USB_CDC_MBIM_NDP16_IPS_SIGN 0x00535049 /* IPS<sessionID> : IPS0 for now */ | ||
| 354 | #define USB_CDC_MBIM_NDP32_IPS_SIGN 0x00737069 /* ips<sessionID> : ips0 for now */ | ||
| 355 | #define USB_CDC_MBIM_NDP16_DSS_SIGN 0x00535344 /* DSS<sessionID> */ | ||
| 356 | #define USB_CDC_MBIM_NDP32_DSS_SIGN 0x00737364 /* dss<sessionID> */ | ||
| 357 | |||
| 335 | /* 16-bit NCM Datagram Pointer Entry */ | 358 | /* 16-bit NCM Datagram Pointer Entry */ |
| 336 | struct usb_cdc_ncm_dpe16 { | 359 | struct usb_cdc_ncm_dpe16 { |
| 337 | __le16 wDatagramIndex; | 360 | __le16 wDatagramIndex; |
