summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEnrico Mioso <mrkiko.rs@gmail.com>2017-07-11 17:21:52 +0200
committerDavid S. Miller <davem@davemloft.net>2017-07-14 08:15:05 -0700
commit2b02c20ce0c28974b44e69a2e2f5ddc6a470ad6f (patch)
treeba2f9e3295e42338f3a83f5bb95952580eab4b91 /include
parent457839ed3e78618cf0354cf79a1f47fe6eb26aef (diff)
downloadlinux-stable-2b02c20ce0c28974b44e69a2e2f5ddc6a470ad6f.tar.gz
linux-stable-2b02c20ce0c28974b44e69a2e2f5ddc6a470ad6f.tar.bz2
linux-stable-2b02c20ce0c28974b44e69a2e2f5ddc6a470ad6f.zip
cdc_ncm: Set NTB format again after altsetting switch for Huawei devices
Some firmwares in Huawei E3372H devices have been observed to switch back to NTB 32-bit format after altsetting switch. This patch implements a driver flag to check for the device settings and set NTB format to 16-bit again if needed. The flag has been activated for devices controlled by the huawei_cdc_ncm.c driver. V1->V2: - fixed broken error checks - some corrections to the commit message V2->V3: - variable name changes, to clarify what's happening - check (and possibly set) the NTB format later in the common bind code path Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com> Reported-and-tested-by: Christian Panton <christian@panton.org> Reviewed-by: Bjørn Mork <bjorn@mork.no> CC: Bjørn Mork <bjorn@mork.no> CC: Christian Panton <christian@panton.org> CC: linux-usb@vger.kernel.org CC: netdev@vger.kernel.org CC: Oliver Neukum <oliver@neukum.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/usb/cdc_ncm.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/usb/cdc_ncm.h b/include/linux/usb/cdc_ncm.h
index 021f7a88f52c..1a59699cf82a 100644
--- a/include/linux/usb/cdc_ncm.h
+++ b/include/linux/usb/cdc_ncm.h
@@ -83,6 +83,7 @@
/* Driver flags */
#define CDC_NCM_FLAG_NDP_TO_END 0x02 /* NDP is placed at end of frame */
#define CDC_MBIM_FLAG_AVOID_ALTSETTING_TOGGLE 0x04 /* Avoid altsetting toggle during init */
+#define CDC_NCM_FLAG_RESET_NTB16 0x08 /* set NDP16 one more time after altsetting switch */
#define cdc_ncm_comm_intf_is_mbim(x) ((x)->desc.bInterfaceSubClass == USB_CDC_SUBCLASS_MBIM && \
(x)->desc.bInterfaceProtocol == USB_CDC_PROTO_NONE)