Commit 51615edd authored by Greg Suarez's avatar Greg Suarez Committed by David S. Miller

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: default avatarGreg Suarez <gsuarez@smithmicro.com>
[bmork: added DSS defines]
Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent dad957d7
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#define USB_CDC_SUBCLASS_OBEX 0x0b #define USB_CDC_SUBCLASS_OBEX 0x0b
#define USB_CDC_SUBCLASS_EEM 0x0c #define USB_CDC_SUBCLASS_EEM 0x0c
#define USB_CDC_SUBCLASS_NCM 0x0d #define USB_CDC_SUBCLASS_NCM 0x0d
#define USB_CDC_SUBCLASS_MBIM 0x0e
#define USB_CDC_PROTO_NONE 0 #define USB_CDC_PROTO_NONE 0
...@@ -33,6 +34,7 @@ ...@@ -33,6 +34,7 @@
#define USB_CDC_PROTO_EEM 7 #define USB_CDC_PROTO_EEM 7
#define USB_CDC_NCM_PROTO_NTB 1 #define USB_CDC_NCM_PROTO_NTB 1
#define USB_CDC_MBIM_PROTO_NTB 2
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
...@@ -53,6 +55,7 @@ ...@@ -53,6 +55,7 @@
#define USB_CDC_DMM_TYPE 0x14 #define USB_CDC_DMM_TYPE 0x14
#define USB_CDC_OBEX_TYPE 0x15 #define USB_CDC_OBEX_TYPE 0x15
#define USB_CDC_NCM_TYPE 0x1a #define USB_CDC_NCM_TYPE 0x1a
#define USB_CDC_MBIM_TYPE 0x1b
/* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */
struct usb_cdc_header_desc { struct usb_cdc_header_desc {
...@@ -187,6 +190,21 @@ struct usb_cdc_ncm_desc { ...@@ -187,6 +190,21 @@ struct usb_cdc_ncm_desc {
__le16 bcdNcmVersion; __le16 bcdNcmVersion;
__u8 bmNetworkCapabilities; __u8 bmNetworkCapabilities;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* "MBIM Control Model Functional Descriptor" */
struct usb_cdc_mbim_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__le16 bcdMBIMVersion;
__le16 wMaxControlMessage;
__u8 bNumberFilters;
__u8 bMaxFilterSize;
__le16 wMaxSegmentSize;
__u8 bmNetworkCapabilities;
} __attribute__ ((packed));
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
/* /*
...@@ -332,6 +350,11 @@ struct usb_cdc_ncm_nth32 { ...@@ -332,6 +350,11 @@ struct usb_cdc_ncm_nth32 {
#define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */ #define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */
#define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */ #define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */
#define USB_CDC_MBIM_NDP16_IPS_SIGN 0x00535049 /* IPS<sessionID> : IPS0 for now */
#define USB_CDC_MBIM_NDP32_IPS_SIGN 0x00737069 /* ips<sessionID> : ips0 for now */
#define USB_CDC_MBIM_NDP16_DSS_SIGN 0x00535344 /* DSS<sessionID> */
#define USB_CDC_MBIM_NDP32_DSS_SIGN 0x00737364 /* dss<sessionID> */
/* 16-bit NCM Datagram Pointer Entry */ /* 16-bit NCM Datagram Pointer Entry */
struct usb_cdc_ncm_dpe16 { struct usb_cdc_ncm_dpe16 {
__le16 wDatagramIndex; __le16 wDatagramIndex;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment