CDC NCM errata updates for cdc.h

Changes are based on the following documents:
- CDC NCM errata:
http://www.usb.org/developers/devclass_docs/NCM10_012011.zip
- CDC and WMC errata link:
http://www.usb.org/developers/devclass_docs/CDC1.2_WMC1.1_012011.zip

Signed-off-by: Alexey Orishko <alexey.orishko@stericsson.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Alexey Orishko 2011-02-07 09:45:09 +00:00 committed by David S. Miller
parent 3fb17dabf6
commit 3a9dda7602

View file

@ -89,7 +89,7 @@ struct usb_cdc_acm_descriptor {
#define USB_CDC_COMM_FEATURE 0x01 #define USB_CDC_COMM_FEATURE 0x01
#define USB_CDC_CAP_LINE 0x02 #define USB_CDC_CAP_LINE 0x02
#define USB_CDC_CAP_BRK 0x04 #define USB_CDC_CAP_BRK 0x04
#define USB_CDC_CAP_NOTIFY 0x08 #define USB_CDC_CAP_NOTIFY 0x08
/* "Union Functional Descriptor" from CDC spec 5.2.3.8 */ /* "Union Functional Descriptor" from CDC spec 5.2.3.8 */
@ -271,6 +271,11 @@ struct usb_cdc_notification {
__le16 wLength; __le16 wLength;
} __attribute__ ((packed)); } __attribute__ ((packed));
struct usb_cdc_speed_change {
__le32 DLBitRRate; /* contains the downlink bit rate (IN pipe) */
__le32 ULBitRate; /* contains the uplink bit rate (OUT pipe) */
} __attribute__ ((packed));
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
/* /*
@ -292,7 +297,7 @@ struct usb_cdc_ncm_ntb_parameters {
__le16 wNdpOutDivisor; __le16 wNdpOutDivisor;
__le16 wNdpOutPayloadRemainder; __le16 wNdpOutPayloadRemainder;
__le16 wNdpOutAlignment; __le16 wNdpOutAlignment;
__le16 wPadding2; __le16 wNtbOutMaxDatagrams;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* /*
@ -307,7 +312,7 @@ struct usb_cdc_ncm_nth16 {
__le16 wHeaderLength; __le16 wHeaderLength;
__le16 wSequence; __le16 wSequence;
__le16 wBlockLength; __le16 wBlockLength;
__le16 wFpIndex; __le16 wNdpIndex;
} __attribute__ ((packed)); } __attribute__ ((packed));
struct usb_cdc_ncm_nth32 { struct usb_cdc_ncm_nth32 {
@ -315,7 +320,7 @@ struct usb_cdc_ncm_nth32 {
__le16 wHeaderLength; __le16 wHeaderLength;
__le16 wSequence; __le16 wSequence;
__le32 dwBlockLength; __le32 dwBlockLength;
__le32 dwFpIndex; __le32 dwNdpIndex;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* /*
@ -337,7 +342,7 @@ struct usb_cdc_ncm_dpe16 {
struct usb_cdc_ncm_ndp16 { struct usb_cdc_ncm_ndp16 {
__le32 dwSignature; __le32 dwSignature;
__le16 wLength; __le16 wLength;
__le16 wNextFpIndex; __le16 wNextNdpIndex;
struct usb_cdc_ncm_dpe16 dpe16[0]; struct usb_cdc_ncm_dpe16 dpe16[0];
} __attribute__ ((packed)); } __attribute__ ((packed));
@ -375,6 +380,7 @@ struct usb_cdc_ncm_ndp32 {
#define USB_CDC_NCM_NCAP_ENCAP_COMMAND (1 << 2) #define USB_CDC_NCM_NCAP_ENCAP_COMMAND (1 << 2)
#define USB_CDC_NCM_NCAP_MAX_DATAGRAM_SIZE (1 << 3) #define USB_CDC_NCM_NCAP_MAX_DATAGRAM_SIZE (1 << 3)
#define USB_CDC_NCM_NCAP_CRC_MODE (1 << 4) #define USB_CDC_NCM_NCAP_CRC_MODE (1 << 4)
#define USB_CDC_NCM_NCAP_NTB_INPUT_SIZE (1 << 5)
/* CDC NCM subclass Table 6-3: NTB Parameter Structure */ /* CDC NCM subclass Table 6-3: NTB Parameter Structure */
#define USB_CDC_NCM_NTB16_SUPPORTED (1 << 0) #define USB_CDC_NCM_NTB16_SUPPORTED (1 << 0)
@ -392,6 +398,13 @@ struct usb_cdc_ncm_ndp32 {
#define USB_CDC_NCM_NTB_MIN_IN_SIZE 2048 #define USB_CDC_NCM_NTB_MIN_IN_SIZE 2048
#define USB_CDC_NCM_NTB_MIN_OUT_SIZE 2048 #define USB_CDC_NCM_NTB_MIN_OUT_SIZE 2048
/* NTB Input Size Structure */
struct usb_cdc_ncm_ndp_input_size {
__le32 dwNtbInMaxSize;
__le16 wNtbInMaxDatagrams;
__le16 wReserved;
} __attribute__ ((packed));
/* CDC NCM subclass 6.2.11 SetCrcMode */ /* CDC NCM subclass 6.2.11 SetCrcMode */
#define USB_CDC_NCM_CRC_NOT_APPENDED 0x00 #define USB_CDC_NCM_CRC_NOT_APPENDED 0x00
#define USB_CDC_NCM_CRC_APPENDED 0x01 #define USB_CDC_NCM_CRC_APPENDED 0x01