Re: cdc_ncm: Specific Huawei E3372h firmware version stuck in NTB-32

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christian Panton <christian@xxxxxxxxxx> writes:

> I have two mobile broadband Huawei E3372h devices, one with firmware
> 21.200.07.01.26 (aka the 200-version) and one with firmware
> 21.318.01.00.541 (aka the 318-version).
>
> Whereas the 200-version works perfectly with a recent kernel (4.10),
> the latter never manages to exchange any IP-packets. Upon debugging
> USB-traces, I found that the 200-version correctly switches to NTB-16,
> whereas the 318-version stays in NTB-32 mode.

And both these firmwares use the cdc_ncm class driver directly, and not
the huawei_cdc_ncm driver?  I.e. they appear as true CDC NCM class
devices?

Enrico found a bug a few years ago, where Huawei firmwares used the
wrong format unless we put the NDP last in the NTB. This issue was
worked around by adding an 'ndp_to_end' flag to the driver. I believe we
so far only have seen the bug in CDC MBIM and Huawei vendor specific NCM
functions. Where it is sort of handled by defaulting the 'ndp_to_end'
flag to true for all Huawei devices.

Maybe we need to do that in the cdc_ncm driver as well?  Could you test if 

 echo Y  >/sys/class/net/xxx/cdc_ncm/ndp_to_end

makes any difference, where xxx is the name of your wwan netdev?

For the record: The NCM spec is pretty clear that the NDP can be located
anywhere in the frame, and that NTB-16 mode must be supported, and that
the NTB-16 mode is the default after setting the data interface to
altsetting 0 (i.e. the intial state).


Section 3 "Data Transport":

 "Within any given NTB, the NTH always must be first; but the other
  items may occur in arbitrary order."


Section 3.5 "NTB format support":

 "Functions conforming to this specification shall support 16-bit NTB
  structures"


Section 7.2 "Using Alternate Settings to Reset an NCM Function":

 "Whenever alternate setting 0 is selected by the host, the function
  shall:
  ..
  - reset the NTB format to NTB-16
 "


We cannot make vendors fix their firmwares, but we can vote for less
buggy firmware with our wallets... 



Bjørn
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux