<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/usb, branch v4.9.282</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>usb: dwc3: gadget: Fix dwc3_calc_trbs_left()</title>
<updated>2021-09-03T07:44:40+00:00</updated>
<author>
<name>Thinh Nguyen</name>
<email>Thinh.Nguyen@synopsys.com</email>
</author>
<published>2021-08-19T01:17:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9b660089241de9f2870da4c8e9b6198a090fb9dd'/>
<id>9b660089241de9f2870da4c8e9b6198a090fb9dd</id>
<content type='text'>
commit 51f1954ad853d01ba4dc2b35dee14d8490ee05a1 upstream.

We can't depend on the TRB's HWO bit to determine if the TRB ring is
"full". A TRB is only available when the driver had processed it, not
when the controller consumed and relinquished the TRB's ownership to the
driver. Otherwise, the driver may overwrite unprocessed TRBs. This can
happen when many transfer events accumulate and the system is slow to
process them and/or when there are too many small requests.

If a request is in the started_list, that means there is one or more
unprocessed TRBs remained. Check this instead of the TRB's HWO bit
whether the TRB ring is full.

Fixes: c4233573f6ee ("usb: dwc3: gadget: prepare TRBs on update transfers too")
Cc: &lt;stable@vger.kernel.org&gt;
Acked-by: Felipe Balbi &lt;balbi@kernel.org&gt;
Signed-off-by: Thinh Nguyen &lt;Thinh.Nguyen@synopsys.com&gt;
Link: https://lore.kernel.org/r/e91e975affb0d0d02770686afc3a5b9eb84409f6.1629335416.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 51f1954ad853d01ba4dc2b35dee14d8490ee05a1 upstream.

We can't depend on the TRB's HWO bit to determine if the TRB ring is
"full". A TRB is only available when the driver had processed it, not
when the controller consumed and relinquished the TRB's ownership to the
driver. Otherwise, the driver may overwrite unprocessed TRBs. This can
happen when many transfer events accumulate and the system is slow to
process them and/or when there are too many small requests.

If a request is in the started_list, that means there is one or more
unprocessed TRBs remained. Check this instead of the TRB's HWO bit
whether the TRB ring is full.

Fixes: c4233573f6ee ("usb: dwc3: gadget: prepare TRBs on update transfers too")
Cc: &lt;stable@vger.kernel.org&gt;
Acked-by: Felipe Balbi &lt;balbi@kernel.org&gt;
Signed-off-by: Thinh Nguyen &lt;Thinh.Nguyen@synopsys.com&gt;
Link: https://lore.kernel.org/r/e91e975affb0d0d02770686afc3a5b9eb84409f6.1629335416.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: option: add new VID/PID to support Fibocom FG150</title>
<updated>2021-09-03T07:44:40+00:00</updated>
<author>
<name>Zhengjun Zhang</name>
<email>zhangzhengjun@aicrobo.com</email>
</author>
<published>2021-08-09T13:35:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=015936d12a8b579043731e28ffc450dd249375e9'/>
<id>015936d12a8b579043731e28ffc450dd249375e9</id>
<content type='text'>
commit 2829a4e3cf3a6ac2fa3cdb681b37574630fb9c1a upstream.

Fibocom FG150 is a 5G module based on Qualcomm SDX55 platform,
support Sub-6G band.

Here are the outputs of lsusb -v and usb-devices:

&gt; T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
&gt; D:  Ver= 3.20 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
&gt; P:  Vendor=2cb7 ProdID=010b Rev=04.14
&gt; S:  Manufacturer=Fibocom
&gt; S:  Product=Fibocom Modem_SN:XXXXXXXX
&gt; S:  SerialNumber=XXXXXXXX
&gt; C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA
&gt; I:  If#=0x0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=rndis_host
&gt; I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
&gt; I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
&gt; I:  If#=0x3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
&gt; I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)

&gt; Bus 002 Device 002: ID 2cb7:010b Fibocom Fibocom Modem_SN:XXXXXXXX
&gt; Device Descriptor:
&gt;   bLength                18
&gt;   bDescriptorType         1
&gt;   bcdUSB               3.20
&gt;   bDeviceClass            0
&gt;   bDeviceSubClass         0
&gt;   bDeviceProtocol         0
&gt;   bMaxPacketSize0         9
&gt;   idVendor           0x2cb7 Fibocom
&gt;   idProduct          0x010b
&gt;   bcdDevice            4.14
&gt;   iManufacturer           1 Fibocom
&gt;   iProduct                2 Fibocom Modem_SN:XXXXXXXX
&gt;   iSerial                 3 XXXXXXXX
&gt;   bNumConfigurations      1
&gt;   Configuration Descriptor:
&gt;     bLength                 9
&gt;     bDescriptorType         2
&gt;     wTotalLength       0x00e6
&gt;     bNumInterfaces          5
&gt;     bConfigurationValue     1
&gt;     iConfiguration          4 RNDIS_DUN_DIAG_ADB
&gt;     bmAttributes         0xa0
&gt;       (Bus Powered)
&gt;       Remote Wakeup
&gt;     MaxPower              896mA
&gt;     Interface Association:
&gt;       bLength                 8
&gt;       bDescriptorType        11
&gt;       bFirstInterface         0
&gt;       bInterfaceCount         2
&gt;       bFunctionClass        239 Miscellaneous Device
&gt;       bFunctionSubClass       4
&gt;       bFunctionProtocol       1
&gt;       iFunction               7 RNDIS
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        0
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           1
&gt;       bInterfaceClass       239 Miscellaneous Device
&gt;       bInterfaceSubClass      4
&gt;       bInterfaceProtocol      1
&gt;       iInterface              0
&gt;       ** UNRECOGNIZED:  05 24 00 10 01
&gt;       ** UNRECOGNIZED:  05 24 01 00 01
&gt;       ** UNRECOGNIZED:  04 24 02 00
&gt;       ** UNRECOGNIZED:  05 24 06 00 01
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x81  EP 1 IN
&gt;         bmAttributes            3
&gt;           Transfer Type            Interrupt
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0008  1x 8 bytes
&gt;         bInterval               9
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        1
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass        10 CDC Data
&gt;       bInterfaceSubClass      0
&gt;       bInterfaceProtocol      0
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x8e  EP 14 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               6
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x0f  EP 15 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               6
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        2
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           3
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass      0
&gt;       bInterfaceProtocol      0
&gt;       iInterface              0
&gt;       ** UNRECOGNIZED:  05 24 00 10 01
&gt;       ** UNRECOGNIZED:  05 24 01 00 00
&gt;       ** UNRECOGNIZED:  04 24 02 02
&gt;       ** UNRECOGNIZED:  05 24 06 00 00
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x83  EP 3 IN
&gt;         bmAttributes            3
&gt;           Transfer Type            Interrupt
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x000a  1x 10 bytes
&gt;         bInterval               9
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x82  EP 2 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x01  EP 1 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        3
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass    255 Vendor Specific Subclass
&gt;       bInterfaceProtocol     48
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x84  EP 4 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x02  EP 2 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        4
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass     66
&gt;       bInterfaceProtocol      1
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x03  EP 3 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x85  EP 5 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt; Binary Object Store Descriptor:
&gt;   bLength                 5
&gt;   bDescriptorType        15
&gt;   wTotalLength       0x0016
&gt;   bNumDeviceCaps          2
&gt;   USB 2.0 Extension Device Capability:
&gt;     bLength                 7
&gt;     bDescriptorType        16
&gt;     bDevCapabilityType      2
&gt;     bmAttributes   0x00000006
&gt;       BESL Link Power Management (LPM) Supported
&gt;   SuperSpeed USB Device Capability:
&gt;     bLength                10
&gt;     bDescriptorType        16
&gt;     bDevCapabilityType      3
&gt;     bmAttributes         0x00
&gt;     wSpeedsSupported   0x000f
&gt;       Device can operate at Low Speed (1Mbps)
&gt;       Device can operate at Full Speed (12Mbps)
&gt;       Device can operate at High Speed (480Mbps)
&gt;       Device can operate at SuperSpeed (5Gbps)
&gt;     bFunctionalitySupport   1
&gt;       Lowest fully-functional device speed is Full Speed (12Mbps)
&gt;     bU1DevExitLat           1 micro seconds
&gt;     bU2DevExitLat         500 micro seconds
&gt; Device Status:     0x0000
&gt;   (Bus Powered)

Signed-off-by: Zhengjun Zhang &lt;zhangzhengjun@aicrobo.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2829a4e3cf3a6ac2fa3cdb681b37574630fb9c1a upstream.

Fibocom FG150 is a 5G module based on Qualcomm SDX55 platform,
support Sub-6G band.

Here are the outputs of lsusb -v and usb-devices:

&gt; T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
&gt; D:  Ver= 3.20 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
&gt; P:  Vendor=2cb7 ProdID=010b Rev=04.14
&gt; S:  Manufacturer=Fibocom
&gt; S:  Product=Fibocom Modem_SN:XXXXXXXX
&gt; S:  SerialNumber=XXXXXXXX
&gt; C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA
&gt; I:  If#=0x0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=rndis_host
&gt; I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
&gt; I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
&gt; I:  If#=0x3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
&gt; I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)

&gt; Bus 002 Device 002: ID 2cb7:010b Fibocom Fibocom Modem_SN:XXXXXXXX
&gt; Device Descriptor:
&gt;   bLength                18
&gt;   bDescriptorType         1
&gt;   bcdUSB               3.20
&gt;   bDeviceClass            0
&gt;   bDeviceSubClass         0
&gt;   bDeviceProtocol         0
&gt;   bMaxPacketSize0         9
&gt;   idVendor           0x2cb7 Fibocom
&gt;   idProduct          0x010b
&gt;   bcdDevice            4.14
&gt;   iManufacturer           1 Fibocom
&gt;   iProduct                2 Fibocom Modem_SN:XXXXXXXX
&gt;   iSerial                 3 XXXXXXXX
&gt;   bNumConfigurations      1
&gt;   Configuration Descriptor:
&gt;     bLength                 9
&gt;     bDescriptorType         2
&gt;     wTotalLength       0x00e6
&gt;     bNumInterfaces          5
&gt;     bConfigurationValue     1
&gt;     iConfiguration          4 RNDIS_DUN_DIAG_ADB
&gt;     bmAttributes         0xa0
&gt;       (Bus Powered)
&gt;       Remote Wakeup
&gt;     MaxPower              896mA
&gt;     Interface Association:
&gt;       bLength                 8
&gt;       bDescriptorType        11
&gt;       bFirstInterface         0
&gt;       bInterfaceCount         2
&gt;       bFunctionClass        239 Miscellaneous Device
&gt;       bFunctionSubClass       4
&gt;       bFunctionProtocol       1
&gt;       iFunction               7 RNDIS
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        0
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           1
&gt;       bInterfaceClass       239 Miscellaneous Device
&gt;       bInterfaceSubClass      4
&gt;       bInterfaceProtocol      1
&gt;       iInterface              0
&gt;       ** UNRECOGNIZED:  05 24 00 10 01
&gt;       ** UNRECOGNIZED:  05 24 01 00 01
&gt;       ** UNRECOGNIZED:  04 24 02 00
&gt;       ** UNRECOGNIZED:  05 24 06 00 01
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x81  EP 1 IN
&gt;         bmAttributes            3
&gt;           Transfer Type            Interrupt
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0008  1x 8 bytes
&gt;         bInterval               9
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        1
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass        10 CDC Data
&gt;       bInterfaceSubClass      0
&gt;       bInterfaceProtocol      0
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x8e  EP 14 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               6
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x0f  EP 15 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               6
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        2
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           3
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass      0
&gt;       bInterfaceProtocol      0
&gt;       iInterface              0
&gt;       ** UNRECOGNIZED:  05 24 00 10 01
&gt;       ** UNRECOGNIZED:  05 24 01 00 00
&gt;       ** UNRECOGNIZED:  04 24 02 02
&gt;       ** UNRECOGNIZED:  05 24 06 00 00
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x83  EP 3 IN
&gt;         bmAttributes            3
&gt;           Transfer Type            Interrupt
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x000a  1x 10 bytes
&gt;         bInterval               9
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x82  EP 2 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x01  EP 1 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        3
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass    255 Vendor Specific Subclass
&gt;       bInterfaceProtocol     48
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x84  EP 4 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x02  EP 2 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        4
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass     66
&gt;       bInterfaceProtocol      1
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x03  EP 3 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x85  EP 5 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt; Binary Object Store Descriptor:
&gt;   bLength                 5
&gt;   bDescriptorType        15
&gt;   wTotalLength       0x0016
&gt;   bNumDeviceCaps          2
&gt;   USB 2.0 Extension Device Capability:
&gt;     bLength                 7
&gt;     bDescriptorType        16
&gt;     bDevCapabilityType      2
&gt;     bmAttributes   0x00000006
&gt;       BESL Link Power Management (LPM) Supported
&gt;   SuperSpeed USB Device Capability:
&gt;     bLength                10
&gt;     bDescriptorType        16
&gt;     bDevCapabilityType      3
&gt;     bmAttributes         0x00
&gt;     wSpeedsSupported   0x000f
&gt;       Device can operate at Low Speed (1Mbps)
&gt;       Device can operate at Full Speed (12Mbps)
&gt;       Device can operate at High Speed (480Mbps)
&gt;       Device can operate at SuperSpeed (5Gbps)
&gt;     bFunctionalitySupport   1
&gt;       Lowest fully-functional device speed is Full Speed (12Mbps)
&gt;     bU1DevExitLat           1 micro seconds
&gt;     bU2DevExitLat         500 micro seconds
&gt; Device Status:     0x0000
&gt;   (Bus Powered)

Signed-off-by: Zhengjun Zhang &lt;zhangzhengjun@aicrobo.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "USB: serial: ch341: fix character loss at high transfer rates"</title>
<updated>2021-09-03T07:44:39+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@kernel.org</email>
</author>
<published>2021-08-24T12:19:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=12b7e85f1b95b044c4a1ed1b7abfadd41857b836'/>
<id>12b7e85f1b95b044c4a1ed1b7abfadd41857b836</id>
<content type='text'>
commit df7b16d1c00ecb3da3a30c999cdb39f273c99a2f upstream.

This reverts commit 3c18e9baee0ef97510dcda78c82285f52626764b.

These devices do not appear to send a zero-length packet when the
transfer size is a multiple of the bulk-endpoint max-packet size. This
means that incoming data may not be processed by the driver until a
short packet is received or the receive buffer is full.

Revert back to using endpoint-sized receive buffers to avoid stalled
reads.

Reported-by: Paul Größel &lt;pb.g@gmx.de&gt;
Link: https://bugzilla.kernel.org/show_bug.cgi?id=214131
Fixes: 3c18e9baee0e ("USB: serial: ch341: fix character loss at high transfer rates")
Cc: stable@vger.kernel.org
Cc: Willy Tarreau &lt;w@1wt.eu&gt;
Link: https://lore.kernel.org/r/20210824121926.19311-1-johan@kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit df7b16d1c00ecb3da3a30c999cdb39f273c99a2f upstream.

This reverts commit 3c18e9baee0ef97510dcda78c82285f52626764b.

These devices do not appear to send a zero-length packet when the
transfer size is a multiple of the bulk-endpoint max-packet size. This
means that incoming data may not be processed by the driver until a
short packet is received or the receive buffer is full.

Revert back to using endpoint-sized receive buffers to avoid stalled
reads.

Reported-by: Paul Größel &lt;pb.g@gmx.de&gt;
Link: https://bugzilla.kernel.org/show_bug.cgi?id=214131
Fixes: 3c18e9baee0e ("USB: serial: ch341: fix character loss at high transfer rates")
Cc: stable@vger.kernel.org
Cc: Willy Tarreau &lt;w@1wt.eu&gt;
Link: https://lore.kernel.org/r/20210824121926.19311-1-johan@kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB:ehci:fix Kunpeng920 ehci hardware problem</title>
<updated>2021-08-15T11:01:04+00:00</updated>
<author>
<name>Longfang Liu</name>
<email>liulongfang@huawei.com</email>
</author>
<published>2021-04-09T08:48:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c973b4e293f5110b1f944ae03cd5b53101f146d2'/>
<id>c973b4e293f5110b1f944ae03cd5b53101f146d2</id>
<content type='text'>
commit 26b75952ca0b8b4b3050adb9582c8e2f44d49687 upstream.

Kunpeng920's EHCI controller does not have SBRN register.
Reading the SBRN register when the controller driver is
initialized will get 0.

When rebooting the EHCI driver, ehci_shutdown() will be called.
if the sbrn flag is 0, ehci_shutdown() will return directly.
The sbrn flag being 0 will cause the EHCI interrupt signal to
not be turned off after reboot. this interrupt that is not closed
will cause an exception to the device sharing the interrupt.

Therefore, the EHCI controller of Kunpeng920 needs to skip
the read operation of the SBRN register.

Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Longfang Liu &lt;liulongfang@huawei.com&gt;
Link: https://lore.kernel.org/r/1617958081-17999-1-git-send-email-liulongfang@huawei.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 26b75952ca0b8b4b3050adb9582c8e2f44d49687 upstream.

Kunpeng920's EHCI controller does not have SBRN register.
Reading the SBRN register when the controller driver is
initialized will get 0.

When rebooting the EHCI driver, ehci_shutdown() will be called.
if the sbrn flag is 0, ehci_shutdown() will return directly.
The sbrn flag being 0 will cause the EHCI interrupt signal to
not be turned off after reboot. this interrupt that is not closed
will cause an exception to the device sharing the interrupt.

Therefore, the EHCI controller of Kunpeng920 needs to skip
the read operation of the SBRN register.

Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Longfang Liu &lt;liulongfang@huawei.com&gt;
Link: https://lore.kernel.org/r/1617958081-17999-1-git-send-email-liulongfang@huawei.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: otg-fsm: Fix hrtimer list corruption</title>
<updated>2021-08-15T11:01:03+00:00</updated>
<author>
<name>Dmitry Osipenko</name>
<email>digetx@gmail.com</email>
</author>
<published>2021-07-17T18:21:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=22b3cc0f63ab394d7828e8d1cbdc81382408c8c9'/>
<id>22b3cc0f63ab394d7828e8d1cbdc81382408c8c9</id>
<content type='text'>
commit bf88fef0b6f1488abeca594d377991171c00e52a upstream.

The HNP work can be re-scheduled while it's still in-fly. This results in
re-initialization of the busy work, resetting the hrtimer's list node of
the work and crashing kernel with null dereference within kernel/timer
once work's timer is expired. It's very easy to trigger this problem by
re-plugging USB cable quickly. Initialize HNP work only once to fix this
trouble.

 Unable to handle kernel NULL pointer dereference at virtual address 00000126)
 ...
 PC is at __run_timers.part.0+0x150/0x228
 LR is at __next_timer_interrupt+0x51/0x9c
 ...
 (__run_timers.part.0) from [&lt;c0187a2b&gt;] (run_timer_softirq+0x2f/0x50)
 (run_timer_softirq) from [&lt;c01013ad&gt;] (__do_softirq+0xd5/0x2f0)
 (__do_softirq) from [&lt;c012589b&gt;] (irq_exit+0xab/0xb8)
 (irq_exit) from [&lt;c0170341&gt;] (handle_domain_irq+0x45/0x60)
 (handle_domain_irq) from [&lt;c04c4a43&gt;] (gic_handle_irq+0x6b/0x7c)
 (gic_handle_irq) from [&lt;c0100b65&gt;] (__irq_svc+0x65/0xac)

Cc: stable@vger.kernel.org
Acked-by: Peter Chen &lt;peter.chen@kernel.org&gt;
Signed-off-by: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Link: https://lore.kernel.org/r/20210717182134.30262-6-digetx@gmail.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit bf88fef0b6f1488abeca594d377991171c00e52a upstream.

The HNP work can be re-scheduled while it's still in-fly. This results in
re-initialization of the busy work, resetting the hrtimer's list node of
the work and crashing kernel with null dereference within kernel/timer
once work's timer is expired. It's very easy to trigger this problem by
re-plugging USB cable quickly. Initialize HNP work only once to fix this
trouble.

 Unable to handle kernel NULL pointer dereference at virtual address 00000126)
 ...
 PC is at __run_timers.part.0+0x150/0x228
 LR is at __next_timer_interrupt+0x51/0x9c
 ...
 (__run_timers.part.0) from [&lt;c0187a2b&gt;] (run_timer_softirq+0x2f/0x50)
 (run_timer_softirq) from [&lt;c01013ad&gt;] (__do_softirq+0xd5/0x2f0)
 (__do_softirq) from [&lt;c012589b&gt;] (irq_exit+0xab/0xb8)
 (irq_exit) from [&lt;c0170341&gt;] (handle_domain_irq+0x45/0x60)
 (handle_domain_irq) from [&lt;c04c4a43&gt;] (gic_handle_irq+0x6b/0x7c)
 (gic_handle_irq) from [&lt;c0100b65&gt;] (__irq_svc+0x65/0xac)

Cc: stable@vger.kernel.org
Acked-by: Peter Chen &lt;peter.chen@kernel.org&gt;
Signed-off-by: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Link: https://lore.kernel.org/r/20210717182134.30262-6-digetx@gmail.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2</title>
<updated>2021-08-15T11:01:02+00:00</updated>
<author>
<name>David Bauer</name>
<email>mail@david-bauer.net</email>
</author>
<published>2021-08-04T23:25:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=384ea57acd45c8aeba0b964dcf272e066b50d615'/>
<id>384ea57acd45c8aeba0b964dcf272e066b50d615</id>
<content type='text'>
commit 8da0e55c7988ef9f08a708c38e5c75ecd8862cf8 upstream.

The Auto-M3 OP-COM v2 is a OBD diagnostic device using a FTD232 for the
USB connection.

Signed-off-by: David Bauer &lt;mail@david-bauer.net&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8da0e55c7988ef9f08a708c38e5c75ecd8862cf8 upstream.

The Auto-M3 OP-COM v2 is a OBD diagnostic device using a FTD232 for the
USB connection.

Signed-off-by: David Bauer &lt;mail@david-bauer.net&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: ch341: fix character loss at high transfer rates</title>
<updated>2021-08-15T11:01:02+00:00</updated>
<author>
<name>Willy Tarreau</name>
<email>w@1wt.eu</email>
</author>
<published>2021-07-24T15:27:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fa74dfe83ae8c5492c05b7f26f06a228f9e98cd5'/>
<id>fa74dfe83ae8c5492c05b7f26f06a228f9e98cd5</id>
<content type='text'>
commit 3c18e9baee0ef97510dcda78c82285f52626764b upstream.

The chip supports high transfer rates, but with the small default buffers
(64 bytes read), some entire blocks are regularly lost. This typically
happens at 1.5 Mbps (which is the default speed on Rockchip devices) when
used as a console to access U-Boot where the output of the "help" command
misses many lines and where "printenv" mangles the environment.

The FTDI driver doesn't suffer at all from this. One difference is that
it uses 512 bytes rx buffers and 256 bytes tx buffers. Adopting these
values completely resolved the issue, even the output of "dmesg" is
reliable. I preferred to leave the Tx value unchanged as it is not
involved in this issue, while a change could increase the risk of
triggering the same issue with other devices having too small buffers.

I verified that it backports well (and works) at least to 5.4. It's of
low importance enough to be dropped where it doesn't trivially apply
anymore.

Cc: stable@vger.kernel.org
Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
Link: https://lore.kernel.org/r/20210724152739.18726-1-w@1wt.eu
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3c18e9baee0ef97510dcda78c82285f52626764b upstream.

The chip supports high transfer rates, but with the small default buffers
(64 bytes read), some entire blocks are regularly lost. This typically
happens at 1.5 Mbps (which is the default speed on Rockchip devices) when
used as a console to access U-Boot where the output of the "help" command
misses many lines and where "printenv" mangles the environment.

The FTDI driver doesn't suffer at all from this. One difference is that
it uses 512 bytes rx buffers and 256 bytes tx buffers. Adopting these
values completely resolved the issue, even the output of "dmesg" is
reliable. I preferred to leave the Tx value unchanged as it is not
involved in this issue, while a change could increase the risk of
triggering the same issue with other devices having too small buffers.

I verified that it backports well (and works) at least to 5.4. It's of
low importance enough to be dropped where it doesn't trivially apply
anymore.

Cc: stable@vger.kernel.org
Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
Link: https://lore.kernel.org/r/20210724152739.18726-1-w@1wt.eu
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: option: add Telit FD980 composition 0x1056</title>
<updated>2021-08-15T11:01:02+00:00</updated>
<author>
<name>Daniele Palmas</name>
<email>dnlplm@gmail.com</email>
</author>
<published>2021-08-03T19:47:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f4d6c9b3bea9e59566fd32aad524aba311807532'/>
<id>f4d6c9b3bea9e59566fd32aad524aba311807532</id>
<content type='text'>
commit 5648c073c33d33a0a19d0cb1194a4eb88efe2b71 upstream.

Add the following Telit FD980 composition 0x1056:

Cfg #1: mass storage
Cfg #2: rndis, tty, adb, tty, tty, tty, tty

Signed-off-by: Daniele Palmas &lt;dnlplm@gmail.com&gt;
Link: https://lore.kernel.org/r/20210803194711.3036-1-dnlplm@gmail.com
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 5648c073c33d33a0a19d0cb1194a4eb88efe2b71 upstream.

Add the following Telit FD980 composition 0x1056:

Cfg #1: mass storage
Cfg #2: rndis, tty, adb, tty, tty, tty, tty

Signed-off-by: Daniele Palmas &lt;dnlplm@gmail.com&gt;
Link: https://lore.kernel.org/r/20210803194711.3036-1-dnlplm@gmail.com
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: usbtmc: Fix RCU stall warning</title>
<updated>2021-08-15T11:01:02+00:00</updated>
<author>
<name>Qiang.zhang</name>
<email>qiang.zhang@windriver.com</email>
</author>
<published>2021-07-23T00:43:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=adfb8b5476e7c4627e22428be6f8f18f052ace47'/>
<id>adfb8b5476e7c4627e22428be6f8f18f052ace47</id>
<content type='text'>
commit 30fad76ce4e98263edfa8f885c81d5426c1bf169 upstream.

rcu: INFO: rcu_preempt self-detected stall on CPU
rcu:    1-...!: (2 ticks this GP) idle=d92/1/0x4000000000000000
        softirq=25390/25392 fqs=3
        (t=12164 jiffies g=31645 q=43226)
rcu: rcu_preempt kthread starved for 12162 jiffies! g31645 f0x0
     RCU_GP_WAIT_FQS(5) -&gt;state=0x0 -&gt;cpu=0
rcu:    Unless rcu_preempt kthread gets sufficient CPU time,
        OOM is now expected behavior.
rcu: RCU grace-period kthread stack dump:
task:rcu_preempt     state:R  running task
...........
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: usb_submit_urb failed: -19

The function usbtmc_interrupt() resubmits urbs when the error status
of an urb is -EPROTO. In systems using the dummy_hcd usb controller
this can result in endless interrupt loops when the usbtmc device is
disconnected from the host system.

Since host controller drivers already try to recover from transmission
errors, there is no need to resubmit the urb or try other solutions
to repair the error situation.

In case of errors the INT pipe just stops to wait for further packets.

Fixes: dbf3e7f654c0 ("Implement an ioctl to support the USMTMC-USB488 READ_STATUS_BYTE operation")
Cc: stable@vger.kernel.org
Reported-by: syzbot+e2eae5639e7203360018@syzkaller.appspotmail.com
Signed-off-by: Qiang.zhang &lt;qiang.zhang@windriver.com&gt;
Acked-by: Guido Kiener &lt;guido.kiener@rohde-schwarz.com&gt;
Link: https://lore.kernel.org/r/20210723004334.458930-1-qiang.zhang@windriver.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 30fad76ce4e98263edfa8f885c81d5426c1bf169 upstream.

rcu: INFO: rcu_preempt self-detected stall on CPU
rcu:    1-...!: (2 ticks this GP) idle=d92/1/0x4000000000000000
        softirq=25390/25392 fqs=3
        (t=12164 jiffies g=31645 q=43226)
rcu: rcu_preempt kthread starved for 12162 jiffies! g31645 f0x0
     RCU_GP_WAIT_FQS(5) -&gt;state=0x0 -&gt;cpu=0
rcu:    Unless rcu_preempt kthread gets sufficient CPU time,
        OOM is now expected behavior.
rcu: RCU grace-period kthread stack dump:
task:rcu_preempt     state:R  running task
...........
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: unknown status received: -71
usbtmc 3-1:0.0: usb_submit_urb failed: -19

The function usbtmc_interrupt() resubmits urbs when the error status
of an urb is -EPROTO. In systems using the dummy_hcd usb controller
this can result in endless interrupt loops when the usbtmc device is
disconnected from the host system.

Since host controller drivers already try to recover from transmission
errors, there is no need to resubmit the urb or try other solutions
to repair the error situation.

In case of errors the INT pipe just stops to wait for further packets.

Fixes: dbf3e7f654c0 ("Implement an ioctl to support the USMTMC-USB488 READ_STATUS_BYTE operation")
Cc: stable@vger.kernel.org
Reported-by: syzbot+e2eae5639e7203360018@syzkaller.appspotmail.com
Signed-off-by: Qiang.zhang &lt;qiang.zhang@windriver.com&gt;
Acked-by: Guido Kiener &lt;guido.kiener@rohde-schwarz.com&gt;
Link: https://lore.kernel.org/r/20210723004334.458930-1-qiang.zhang@windriver.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick</title>
<updated>2021-07-28T07:14:28+00:00</updated>
<author>
<name>John Keeping</name>
<email>john@metanate.com</email>
</author>
<published>2021-07-21T16:17:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=040b0ec6e1a0fa11df8f771f7036988435011f0c'/>
<id>040b0ec6e1a0fa11df8f771f7036988435011f0c</id>
<content type='text'>
commit d6a206e60124a9759dd7f6dfb86b0e1d3b1df82e upstream.

Add the USB serial device ID for the CEL ZigBee EM3588 radio stick.

Signed-off-by: John Keeping &lt;john@metanate.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit d6a206e60124a9759dd7f6dfb86b0e1d3b1df82e upstream.

Add the USB serial device ID for the CEL ZigBee EM3588 radio stick.

Signed-off-by: John Keeping &lt;john@metanate.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
