• Bjørn Mork's avatar
    net: cdc_ncm: workaround NTB input size firmware bug · dad957d7
    Bjørn Mork authored
    Some devices do not support the 8 byte variants of the NTB input
    size control messages despite announcing such support in their
    NCM or MBIM functional descriptor.
    
    According to the NCM specification, all devices must support the
    4 byte variant regardless of whether or not the flag is set:
    
      If bit D5 is set in the bmNetworkCapabilities field of
      function’s NCM Functional Descriptor, the host may
      set wLength either to 4 or to 8. If wLength is 4, the
      function shall assume that wNtbInMaxDatagrams is to be
      set to zero. If wLength is 8, then the function shall
      use the provided value as the limit. The function shall
      return an error response (a STALL PID) if wLength is set
      to any other value.
    
    We do not set wNtbInMaxDatagrams in any case, so we can just as
    well unconditionally use the 4 byte variant without losing any
    functionality.  This works around the known firmware bug, and
    simplifies the code considerably.
    Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    dad957d7
cdc_ncm.c 33.8 KB