From patchwork Mon Feb 7 19:45:09 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Orishko X-Patchwork-Id: 82126 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 7E7A5B711B for ; Tue, 8 Feb 2011 06:45:54 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752380Ab1BGTpt (ORCPT ); Mon, 7 Feb 2011 14:45:49 -0500 Received: from mail-bw0-f46.google.com ([209.85.214.46]:47139 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750827Ab1BGTpr (ORCPT ); Mon, 7 Feb 2011 14:45:47 -0500 Received: by bwz15 with SMTP id 15so5257175bwz.19 for ; Mon, 07 Feb 2011 11:45:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:date:message-id:x-mailer; bh=EVRWgbM4c1drP1o9zwLnIrepub0QeMfaA5vfSSALyrc=; b=e6iWPmPwXDDTvouYxAcX4cC/tHgrfPt7riuY7dA/TtGkZL713j56Y7fq21CjrLa9fJ OlBMXAN1SFM/GdqN9+6J/vaDeq/M/8VU9GBNJhqDxqpj8aGb/+IuaZ00vrkR09zj33ac Sg8J6rPLGynUUFgzuiytEcV3GwTHug9s29urM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=oBtgXnQ1MMmEDQXFPyPCawA2G03o6gcQFAimZornAeYbl+z/DyTZfSqTjkvVPJkZLs DtyyLtsxljgn4vpEn9ki/62I4qryS0nWqonXtxvfuCgwUH5sU+USfCfMGpn+llbc+2fN jeozf8MyzSTS8xFsE9Gx5W9yfdLcCfEbF4Whc= Received: by 10.204.118.138 with SMTP id v10mr16300667bkq.94.1297107946163; Mon, 07 Feb 2011 11:45:46 -0800 (PST) Received: from localhost.localdomain ([212.4.57.94]) by mx.google.com with ESMTPS id v1sm2270451bkt.5.2011.02.07.11.45.44 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 07 Feb 2011 11:45:45 -0800 (PST) From: Alexey Orishko To: netdev@vger.kernel.org Cc: linux-usb@vger.kernel.org, davem@davemloft.net, gregkh@suse.de, yauheni.kaliuta@nokia.com, Alexey Orishko Subject: [PATCH 1/2] CDC NCM errata updates for cdc.h Date: Mon, 7 Feb 2011 20:45:09 +0100 Message-Id: <1297107910-18263-1-git-send-email-alexey.orishko@stericsson.com> X-Mailer: git-send-email 1.7.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 Acked-by: Greg Kroah-Hartman --- include/linux/usb/cdc.h | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/include/linux/usb/cdc.h b/include/linux/usb/cdc.h index 5e86dc7..81a9279 100644 --- a/include/linux/usb/cdc.h +++ b/include/linux/usb/cdc.h @@ -89,7 +89,7 @@ struct usb_cdc_acm_descriptor { #define USB_CDC_COMM_FEATURE 0x01 #define USB_CDC_CAP_LINE 0x02 -#define USB_CDC_CAP_BRK 0x04 +#define USB_CDC_CAP_BRK 0x04 #define USB_CDC_CAP_NOTIFY 0x08 /* "Union Functional Descriptor" from CDC spec 5.2.3.8 */ @@ -271,6 +271,11 @@ struct usb_cdc_notification { __le16 wLength; } __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 wNdpOutPayloadRemainder; __le16 wNdpOutAlignment; - __le16 wPadding2; + __le16 wNtbOutMaxDatagrams; } __attribute__ ((packed)); /* @@ -307,7 +312,7 @@ struct usb_cdc_ncm_nth16 { __le16 wHeaderLength; __le16 wSequence; __le16 wBlockLength; - __le16 wFpIndex; + __le16 wNdpIndex; } __attribute__ ((packed)); struct usb_cdc_ncm_nth32 { @@ -315,7 +320,7 @@ struct usb_cdc_ncm_nth32 { __le16 wHeaderLength; __le16 wSequence; __le32 dwBlockLength; - __le32 dwFpIndex; + __le32 dwNdpIndex; } __attribute__ ((packed)); /* @@ -337,7 +342,7 @@ struct usb_cdc_ncm_dpe16 { struct usb_cdc_ncm_ndp16 { __le32 dwSignature; __le16 wLength; - __le16 wNextFpIndex; + __le16 wNextNdpIndex; struct usb_cdc_ncm_dpe16 dpe16[0]; } __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_MAX_DATAGRAM_SIZE (1 << 3) #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 */ #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_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 */ #define USB_CDC_NCM_CRC_NOT_APPENDED 0x00 #define USB_CDC_NCM_CRC_APPENDED 0x01