1. 18 1月, 2021 3 次提交
    • J
      USB: serial: cp210x: set IXOFF thresholds · f61309d9
      Johan Hovold 提交于
      At least CP2102 requires the XON/XOFF limits to be initialised in order
      for software input flow control (IXOFF) to work. Specifically, XOFF is
      never sent if the XOFF limit is left at its default value of zero.
      
      Set the limits so that input is throttled when the FIFO free level drops
      below 128 bytes and restarted when the FIFO fill level drops below 128
      bytes.
      
      Note that the threshold values have been chosen so that they can be used
      also with CP2105 which has the smallest FIFO of the currently supported
      device types (288 byte for the SCI port). If needed the limits can be
      made device specific later.
      Reviewed-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      f61309d9
    • W
      USB: serial: cp210x: add support for software flow control · 7748feff
      Wang Sheng Long 提交于
      When data is transmitted between two serial ports, the phenomenon of
      data loss often occurs. The two kinds of flow control commonly used in
      serial communication are hardware flow control and software flow
      control.
      
      In serial communication, If you only use RX/TX/GND Pins, you can't do
      hardware flow. So we often used software flow control and prevent data
      loss. The user sets the software flow control through the application
      program, and the application program sets the software flow control mode
      for the serial port chip through the driver.
      
      For the cp210 serial port chip, its driver lacks the software flow
      control setting code, so the user cannot set the software flow control
      function through the application program. This adds the missing software
      flow control.
      Signed-off-by: NWang Sheng Long <shenglong.wang.ext@siemens.com>
      Link: https://lore.kernel.org/r/20210104094502.3942-1-china_shenglong@163.com
      [ johan: rework properly on top of recent termios changes ]
      Reviewed-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      7748feff
    • J
      USB: serial: pl2303: fix line-speed handling on newer chips · 979d9cbe
      Johan Hovold 提交于
      The latest chip family (HXN) apparently does not support setting the
      line speed using divisors and instead needs to use the direct encoding
      scheme for all rates.
      
      This specifically enables 50, 110, 134, 200 bps and other rates not
      supported by the original chip type.
      
      Fixes: ebd09f1c ("USB: serial: pl2303: add support for PL2303HXN")
      Cc: stable@vger.kernel.org      # 5.5
      Cc: Charles Yeh <charlesyeh522@gmail.com>
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      979d9cbe
  2. 12 1月, 2021 1 次提交
  3. 04 1月, 2021 3 次提交
    • J
      USB: serial: iuu_phoenix: fix DMA from stack · 54d0a3ab
      Johan Hovold 提交于
      Stack-allocated buffers cannot be used for DMA (on all architectures) so
      allocate the flush command buffer using kmalloc().
      
      Fixes: 60a8fc01 ("USB: add iuu_phoenix driver")
      Cc: stable <stable@vger.kernel.org>     # 2.6.25
      Reviewed-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      54d0a3ab
    • D
      USB: serial: option: add LongSung M5710 module support · 0e2d6795
      Daniel Palmer 提交于
      Add a device-id entry for the LongSung M5710 module.
      
      T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
      D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=2df3 ProdID=9d03 Rev= 1.00
      S:  Manufacturer=Marvell
      S:  Product=Mobile Composite Device Bus
      S:  SerialNumber=<snip>
      C:* #Ifs= 5 Cfg#= 1 Atr=c0 MxPwr=500mA
      A:  FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03
      I:* If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
      E:  Ad=87(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
      E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
      E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=0b(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
      E:  Ad=89(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
      E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
      E:  Ad=88(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
      E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      Signed-off-by: NDaniel Palmer <daniel@0x0f.com>
      https://lore.kernel.org/r/20201227031716.1343300-1-daniel@0x0f.com
      [ johan: drop id defines, only bind to vendor class ]
      Cc: stable@vger.kernel.org
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      0e2d6795
    • B
      USB: serial: option: add Quectel EM160R-GL · d6c1ddd9
      Bjørn Mork 提交于
      New modem using ff/ff/30 for QCDM, ff/00/00 for  AT and NMEA,
      and ff/ff/ff for RMNET/QMI.
      
      T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0
      D: Ver= 3.20 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
      P: Vendor=2c7c ProdID=0620 Rev= 4.09
      S: Manufacturer=Quectel
      S: Product=EM160R-GL
      S: SerialNumber=e31cedc1
      C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA
      I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
      E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
      E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
      E: Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
      E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
      E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
      E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
      E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E: Ad=88(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
      E: Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E: Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      [ johan: add model comment ]
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      d6c1ddd9
  4. 10 12月, 2020 3 次提交
  5. 09 12月, 2020 1 次提交
  6. 04 12月, 2020 7 次提交
  7. 03 12月, 2020 2 次提交
  8. 01 12月, 2020 1 次提交
    • B
      USB: serial: option: fix Quectel BG96 matching · c98fff73
      Bjørn Mork 提交于
      This is a partial revert of commit 2bb70f0a ("USB: serial:
      option: support dynamic Quectel USB compositions")
      
      The Quectel BG96 is different from most other modern Quectel modems,
      having serial functions with 3 endpoints using ff/ff/ff and ff/fe/ff
      class/subclass/protocol. Including it in the change to accommodate
      dynamic function mapping was incorrect.
      
      Revert to interface number matching for the BG96, assuming static
      layout of the RMNET function on interface 4. This restores support
      for the serial functions on interfaces 2 and 3.
      
      Full lsusb output for the BG96:
      
      Bus 002 Device 003: ID 2c7c:0296
      Device Descriptor:
       bLength                18
       bDescriptorType         1
       bcdUSB               2.00
       bDeviceClass            0 (Defined at Interface level)
       bDeviceSubClass         0
       bDeviceProtocol         0
       bMaxPacketSize0        64
       idVendor           0x2c7c
       idProduct          0x0296
       bcdDevice            0.00
       iManufacturer           3 Qualcomm, Incorporated
       iProduct                2 Qualcomm CDMA Technologies MSM
       iSerial                 4 d1098243
       bNumConfigurations      1
       Configuration Descriptor:
         bLength                 9
         bDescriptorType         2
         wTotalLength          145
         bNumInterfaces          5
         bConfigurationValue     1
         iConfiguration          1 Qualcomm Configuration
         bmAttributes         0xe0
           Self Powered
           Remote Wakeup
         MaxPower              500mA
         Interface Descriptor:
           bLength                 9
           bDescriptorType         4
           bInterfaceNumber        0
           bAlternateSetting       0
           bNumEndpoints           2
           bInterfaceClass       255 Vendor Specific Class
           bInterfaceSubClass    255 Vendor Specific Subclass
           bInterfaceProtocol    255 Vendor Specific Protocol
           iInterface              0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x81  EP 1 IN
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x01  EP 1 OUT
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
         Interface Descriptor:
           bLength                 9
           bDescriptorType         4
           bInterfaceNumber        1
           bAlternateSetting       0
           bNumEndpoints           2
           bInterfaceClass       255 Vendor Specific Class
           bInterfaceSubClass    255 Vendor Specific Subclass
           bInterfaceProtocol    255 Vendor Specific Protocol
           iInterface              0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x82  EP 2 IN
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x02  EP 2 OUT
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
         Interface Descriptor:
           bLength                 9
           bDescriptorType         4
           bInterfaceNumber        2
           bAlternateSetting       0
           bNumEndpoints           3
           bInterfaceClass       255 Vendor Specific Class
           bInterfaceSubClass    255 Vendor Specific Subclass
           bInterfaceProtocol    255 Vendor Specific Protocol
           iInterface              0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x83  EP 3 IN
             bmAttributes            3
               Transfer Type            Interrupt
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0040  1x 64 bytes
             bInterval               5
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x84  EP 4 IN
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x03  EP 3 OUT
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
         Interface Descriptor:
           bLength                 9
           bDescriptorType         4
           bInterfaceNumber        3
           bAlternateSetting       0
           bNumEndpoints           3
           bInterfaceClass       255 Vendor Specific Class
           bInterfaceSubClass    254
           bInterfaceProtocol    255
           iInterface              0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x85  EP 5 IN
             bmAttributes            3
               Transfer Type            Interrupt
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0040  1x 64 bytes
             bInterval               5
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x86  EP 6 IN
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x04  EP 4 OUT
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
         Interface Descriptor:
           bLength                 9
           bDescriptorType         4
           bInterfaceNumber        4
           bAlternateSetting       0
           bNumEndpoints           3
           bInterfaceClass       255 Vendor Specific Class
           bInterfaceSubClass    255 Vendor Specific Subclass
           bInterfaceProtocol    255 Vendor Specific Protocol
           iInterface              0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x87  EP 7 IN
             bmAttributes            3
               Transfer Type            Interrupt
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0040  1x 64 bytes
             bInterval               5
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x88  EP 8 IN
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
           Endpoint Descriptor:
             bLength                 7
             bDescriptorType         5
             bEndpointAddress     0x05  EP 5 OUT
             bmAttributes            2
               Transfer Type            Bulk
               Synch Type               None
               Usage Type               Data
             wMaxPacketSize     0x0200  1x 512 bytes
             bInterval               0
      Device Qualifier (for other device speed):
       bLength                10
       bDescriptorType         6
       bcdUSB               2.00
       bDeviceClass            0 (Defined at Interface level)
       bDeviceSubClass         0
       bDeviceProtocol         0
       bMaxPacketSize0        64
       bNumConfigurations      1
      Device Status:     0x0000
       (Bus Powered)
      
      Cc: Sebastian Sjoholm <sebastian.sjoholm@gmail.com>
      Fixes: 2bb70f0a ("USB: serial: option: support dynamic Quectel USB compositions")
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Cc: stable@vger.kernel.org
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      c98fff73
  9. 27 11月, 2020 1 次提交
    • G
      USB: serial: option: add support for Thales Cinterion EXS82 · 6d6556c0
      Giacinto Cifelli 提交于
      There is a single option port in this modem, and it is used as debug port.
      
      lsusb -v for this device:
      
      Bus 001 Device 002: ID 1e2d:006c
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass          239 Miscellaneous Device
        bDeviceSubClass         2 ?
        bDeviceProtocol         1 Interface Association
        bMaxPacketSize0        64
        idVendor           0x1e2d
        idProduct          0x006c
        bcdDevice            0.00
        iManufacturer           4
        iProduct                3
        iSerial                 5
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength          243
          bNumInterfaces          7
          bConfigurationValue     1
          iConfiguration          2
          bmAttributes         0xe0
            Self Powered
            Remote Wakeup
          MaxPower              500mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol    255 Vendor Specific Protocol
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x01  EP 1 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         1
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass       2 Abstract (modem)
            bFunctionProtocol       1 AT-commands (v.25ter)
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      2 Abstract (modem)
            bInterfaceProtocol      1 AT-commands (v.25ter)
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x02
                line coding and serial state
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          2
            CDC Union:
              bMasterInterface        1
              bSlaveInterface         2
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x82  EP 2 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               5
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        2
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x83  EP 3 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x02  EP 2 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         3
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass       2 Abstract (modem)
            bFunctionProtocol       1 AT-commands (v.25ter)
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        3
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      2 Abstract (modem)
            bInterfaceProtocol      1 AT-commands (v.25ter)
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x02
                line coding and serial state
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          4
            CDC Union:
              bMasterInterface        3
              bSlaveInterface         4
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x84  EP 4 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               5
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        4
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x85  EP 5 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x03  EP 3 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         5
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass       2 Abstract (modem)
            bFunctionProtocol       1 AT-commands (v.25ter)
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        5
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      6 Ethernet Networking
            bInterfaceProtocol      0
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC Ethernet:
              iMacAddress                      1 (??)
              bmEthernetStatistics    0x00000000
              wMaxSegmentSize              16384
              wNumberMCFilters            0x0001
              bNumberPowerFilters              0
            CDC Union:
              bMasterInterface        5
              bSlaveInterface         6
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x86  EP 6 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               5
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        6
            bAlternateSetting       0
            bNumEndpoints           0
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        6
            bAlternateSetting       1
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x87  EP 7 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x04  EP 4 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
      Signed-off-by: NGiacinto Cifelli <gciofono@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      6d6556c0
  10. 20 11月, 2020 2 次提交
    • V
      USB: serial: option: add Fibocom NL668 variants · 5e4d659b
      Vincent Palatin 提交于
      Update the USB serial option driver support for the Fibocom NL668 Cat.4
      LTE modules as there are actually several different variants.
      Got clarifications from Fibocom, there are distinct products:
      - VID:PID 1508:1001, NL668 for IOT (no MBIM interface)
      - VID:PID 2cb7:01a0, NL668-AM and NL652-EU are laptop M.2 cards (with
        MBIM interfaces for Windows/Linux/Chrome OS), respectively for Americas
        and Europe.
      
      usb-devices output for the laptop M.2 cards:
      T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  4 Spd=480 MxCh= 0
      D:  Ver= 2.00 Cls=ef(misc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
      P:  Vendor=2cb7 ProdID=01a0 Rev=03.18
      S:  Manufacturer=Fibocom Wireless Inc.
      S:  Product=Fibocom NL652-EU Modem
      S:  SerialNumber=0123456789ABCDEF
      C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
      I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
      I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
      I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
      I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
      I:  If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      Signed-off-by: NVincent Palatin <vpalatin@chromium.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      5e4d659b
    • D
      USB: serial: mos7720: defer state restore to a workqueue · 053af9e6
      Davidlohr Bueso 提交于
      The parallel port restore operation currently defers writes
      to a tasklet, if it sees a locked disconnect mutex. The
      driver goes to a lot of trouble to ensure writes happen
      in a non-blocking context, but things can be greatly
      simplified if it's done in regular process context and
      this is not a system performance critical path. As such,
      instead of doing the state restore writes in softirq context,
      use a workqueue and just do regular synchronous writes.
      
      In addition to the cleanup, this also imposes less on the
      overall system as tasklets have been deprecated because
      of it's softirq implications, potentially blocking a higher
      priority task from running.
      Signed-off-by: NDavidlohr Bueso <dbueso@suse.de>
      Link: https://lore.kernel.org/r/20201120045300.28804-1-dave@stgolabs.net
      [johan: amend commit message ("softirq context")]
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      053af9e6
  11. 05 11月, 2020 2 次提交
  12. 04 11月, 2020 14 次提交