cdc_ncm: Implement the 32-bit version of NCM Transfer Block
authorAlexander Bersenev <bay@hackerdom.ru>
Thu, 5 Mar 2020 20:33:16 +0000 (01:33 +0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Mar 2020 05:59:31 +0000 (22:59 -0700)
commit0fa81b304a7973a499f844176ca031109487dd31
treefc70d769637f9eb97c1fa980edc616432431558d
parent81f954a44567567c7d74a97b1db78fb43afc253d
cdc_ncm: Implement the 32-bit version of NCM Transfer Block

The NCM specification defines two formats of transfer blocks: with 16-bit
fields (NTB-16) and with 32-bit fields (NTB-32). Currently only NTB-16 is
implemented.

This patch adds the support of NTB-32. The motivation behind this is that
some devices such as E5785 or E5885 from the current generation of Huawei
LTE routers do not support NTB-16. The previous generations of Huawei
devices are also use NTB-32 by default.

Also this patch enables NTB-32 by default for Huawei devices.

During the 2019 ValdikSS made five attempts to contact Huawei to add the
NTB-16 support to their router firmware, but they were unsuccessful.

Signed-off-by: Alexander Bersenev <bay@hackerdom.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/cdc_ncm.c
drivers/net/usb/huawei_cdc_ncm.c
include/linux/usb/cdc_ncm.h