<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/usb/serial, branch v4.9.288</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>USB: serial: option: add Telit LE910Cx composition 0x1204</title>
<updated>2021-10-27T07:33:58+00:00</updated>
<author>
<name>Daniele Palmas</name>
<email>dnlplm@gmail.com</email>
</author>
<published>2021-10-04T10:56:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=cf39d1c69ff4e5145edf65754810dcd2800e683f'/>
<id>cf39d1c69ff4e5145edf65754810dcd2800e683f</id>
<content type='text'>
commit f5a8a07edafed8bede17a95ef8940fe3a57a77d5 upstream.

Add the following Telit LE910Cx composition:

0x1204: tty, adb, mbim, tty, tty, tty, tty

Signed-off-by: Daniele Palmas &lt;dnlplm@gmail.com&gt;
Link: https://lore.kernel.org/r/20211004105655.8515-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 f5a8a07edafed8bede17a95ef8940fe3a57a77d5 upstream.

Add the following Telit LE910Cx composition:

0x1204: tty, adb, mbim, tty, tty, tty, tty

Signed-off-by: Daniele Palmas &lt;dnlplm@gmail.com&gt;
Link: https://lore.kernel.org/r/20211004105655.8515-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: serial: qcserial: add EM9191 QDL support</title>
<updated>2021-10-27T07:33:57+00:00</updated>
<author>
<name>Aleksander Morgado</name>
<email>aleksander@aleksander.es</email>
</author>
<published>2021-10-07T12:25:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=99070c477b53659b76185d6428437c7abe913c41'/>
<id>99070c477b53659b76185d6428437c7abe913c41</id>
<content type='text'>
commit 11c52d250b34a0862edc29db03fbec23b30db6da upstream.

When the module boots into QDL download mode it exposes the 1199:90d2
ids, which can be mapped to the qcserial driver, and used to run
firmware upgrades (e.g. with the qmi-firmware-update program).

  T:  Bus=01 Lev=03 Prnt=08 Port=03 Cnt=01 Dev#= 10 Spd=480 MxCh= 0
  D:  Ver= 2.10 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
  P:  Vendor=1199 ProdID=90d2 Rev=00.00
  S:  Manufacturer=Sierra Wireless, Incorporated
  S:  Product=Sierra Wireless EM9191
  S:  SerialNumber=8W0382004102A109
  C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=2mA
  I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=10 Driver=qcserial

Signed-off-by: Aleksander Morgado &lt;aleksander@aleksander.es&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 11c52d250b34a0862edc29db03fbec23b30db6da upstream.

When the module boots into QDL download mode it exposes the 1199:90d2
ids, which can be mapped to the qcserial driver, and used to run
firmware upgrades (e.g. with the qmi-firmware-update program).

  T:  Bus=01 Lev=03 Prnt=08 Port=03 Cnt=01 Dev#= 10 Spd=480 MxCh= 0
  D:  Ver= 2.10 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
  P:  Vendor=1199 ProdID=90d2 Rev=00.00
  S:  Manufacturer=Sierra Wireless, Incorporated
  S:  Product=Sierra Wireless EM9191
  S:  SerialNumber=8W0382004102A109
  C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=2mA
  I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=10 Driver=qcserial

Signed-off-by: Aleksander Morgado &lt;aleksander@aleksander.es&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: option: add device id for Foxconn T99W265</title>
<updated>2021-10-06T08:23:39+00:00</updated>
<author>
<name>Slark Xiao</name>
<email>slark_xiao@163.com</email>
</author>
<published>2021-09-17T11:01:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=55a304cbd0c7a387e3f67cc53b0c1e0f4036a2aa'/>
<id>55a304cbd0c7a387e3f67cc53b0c1e0f4036a2aa</id>
<content type='text'>
commit 9e3eed534f8235a4a596a9dae5b8a6425d81ea1a upstream.

Adding support for Foxconn device T99W265 for enumeration with
PID 0xe0db.

usb-devices output for 0xe0db
T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 19 Spd=5000 MxCh= 0
D:  Ver= 3.20 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  1
P:  Vendor=0489 ProdID=e0db Rev=05.04
S:  Manufacturer=Microsoft
S:  Product=Generic Mobile Broadband Adapter
S:  SerialNumber=6c50f452
C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I:  If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
I:  If#=0x3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option

if0/1: MBIM, if2:Diag, if3:GNSS, if4: Modem

Signed-off-by: Slark Xiao &lt;slark_xiao@163.com&gt;
Link: https://lore.kernel.org/r/20210917110106.9852-1-slark_xiao@163.com
[ johan: use USB_DEVICE_INTERFACE_CLASS(), amend comment ]
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 9e3eed534f8235a4a596a9dae5b8a6425d81ea1a upstream.

Adding support for Foxconn device T99W265 for enumeration with
PID 0xe0db.

usb-devices output for 0xe0db
T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 19 Spd=5000 MxCh= 0
D:  Ver= 3.20 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  1
P:  Vendor=0489 ProdID=e0db Rev=05.04
S:  Manufacturer=Microsoft
S:  Product=Generic Mobile Broadband Adapter
S:  SerialNumber=6c50f452
C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I:  If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
I:  If#=0x3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option

if0/1: MBIM, if2:Diag, if3:GNSS, if4: Modem

Signed-off-by: Slark Xiao &lt;slark_xiao@163.com&gt;
Link: https://lore.kernel.org/r/20210917110106.9852-1-slark_xiao@163.com
[ johan: use USB_DEVICE_INTERFACE_CLASS(), amend comment ]
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: option: remove duplicate USB device ID</title>
<updated>2021-10-06T08:23:39+00:00</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>krzysztof.kozlowski@canonical.com</email>
</author>
<published>2021-09-17T09:18:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a3d6747611a264e39e25bd874851753c7f995ca4'/>
<id>a3d6747611a264e39e25bd874851753c7f995ca4</id>
<content type='text'>
commit 1ca200a8c6f079950a04ea3c3380fe8cf78e95a2 upstream.

The device ZTE 0x0094 is already on the list.

Signed-off-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@canonical.com&gt;
Fixes: b9e44fe5ecda ("USB: option: cleanup zte 3g-dongle's pid in option.c")
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 1ca200a8c6f079950a04ea3c3380fe8cf78e95a2 upstream.

The device ZTE 0x0094 is already on the list.

Signed-off-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@canonical.com&gt;
Fixes: b9e44fe5ecda ("USB: option: cleanup zte 3g-dongle's pid in option.c")
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: option: add Telit LN920 compositions</title>
<updated>2021-10-06T08:23:39+00:00</updated>
<author>
<name>Carlo Lobrano</name>
<email>c.lobrano@gmail.com</email>
</author>
<published>2021-09-03T12:39:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=623b42c9f41f72356e9c183301eb2b04ed0864fb'/>
<id>623b42c9f41f72356e9c183301eb2b04ed0864fb</id>
<content type='text'>
commit 7bb057134d609b9c038a00b6876cf0d37d0118ce upstream.

This patch adds the following Telit LN920 compositions:

0x1060: tty, adb, rmnet, tty, tty, tty, tty
0x1061: tty, adb, mbim, tty, tty, tty, tty
0x1062: rndis, tty, adb, tty, tty, tty, tty
0x1063: tty, adb, ecm, tty, tty, tty, tty

Signed-off-by: Carlo Lobrano &lt;c.lobrano@gmail.com&gt;
Link: https://lore.kernel.org/r/20210903123913.1086513-1-c.lobrano@gmail.com
Reviewed-by: Daniele Palmas &lt;dnlplm@gmail.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 7bb057134d609b9c038a00b6876cf0d37d0118ce upstream.

This patch adds the following Telit LN920 compositions:

0x1060: tty, adb, rmnet, tty, tty, tty, tty
0x1061: tty, adb, mbim, tty, tty, tty, tty
0x1062: rndis, tty, adb, tty, tty, tty, tty
0x1063: tty, adb, ecm, tty, tty, tty, tty

Signed-off-by: Carlo Lobrano &lt;c.lobrano@gmail.com&gt;
Link: https://lore.kernel.org/r/20210903123913.1086513-1-c.lobrano@gmail.com
Reviewed-by: Daniele Palmas &lt;dnlplm@gmail.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>USB: serial: mos7840: remove duplicated 0xac24 device ID</title>
<updated>2021-10-06T08:23:39+00:00</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>krzysztof.kozlowski@canonical.com</email>
</author>
<published>2021-09-17T09:18:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d422b5108dec96a132d3ed1fbe98c13da7984d72'/>
<id>d422b5108dec96a132d3ed1fbe98c13da7984d72</id>
<content type='text'>
commit 211f323768a25b30c106fd38f15a0f62c7c2b5f4 upstream.

0xac24 device ID is already defined and used via
BANDB_DEVICE_ID_USO9ML2_4.  Remove the duplicate from the list.

Fixes: 27f1281d5f72 ("USB: serial: Extra device/vendor ID for mos7840 driver")
Signed-off-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@canonical.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 211f323768a25b30c106fd38f15a0f62c7c2b5f4 upstream.

0xac24 device ID is already defined and used via
BANDB_DEVICE_ID_USO9ML2_4.  Remove the duplicate from the list.

Fixes: 27f1281d5f72 ("USB: serial: Extra device/vendor ID for mos7840 driver")
Signed-off-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@canonical.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>USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter</title>
<updated>2021-10-06T08:23:39+00:00</updated>
<author>
<name>Uwe Brandt</name>
<email>uwe.brandt@gmail.com</email>
</author>
<published>2021-09-21T17:54:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=df8ae5e41319e37b6a3e7389f918d30b8478954a'/>
<id>df8ae5e41319e37b6a3e7389f918d30b8478954a</id>
<content type='text'>
commit 3bd18ba7d859eb1fbef3beb1e80c24f6f7d7596c upstream.

Add the USB serial device ID for the GW Instek GDM-834x Digital Multimeter.

Signed-off-by: Uwe Brandt &lt;uwe.brandt@gmail.com&gt;
Link: https://lore.kernel.org/r/YUxFl3YUCPGJZd8Y@hovoldconsulting.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 3bd18ba7d859eb1fbef3beb1e80c24f6f7d7596c upstream.

Add the USB serial device ID for the GW Instek GDM-834x Digital Multimeter.

Signed-off-by: Uwe Brandt &lt;uwe.brandt@gmail.com&gt;
Link: https://lore.kernel.org/r/YUxFl3YUCPGJZd8Y@hovoldconsulting.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: serial: mos7720: improve OOM-handling in read_mos_reg()</title>
<updated>2021-09-22T09:42:56+00:00</updated>
<author>
<name>Tom Rix</name>
<email>trix@redhat.com</email>
</author>
<published>2021-01-11T22:09:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f29268ea24baaed3bb0d72a9de28787991abf938'/>
<id>f29268ea24baaed3bb0d72a9de28787991abf938</id>
<content type='text'>
commit 161a582bd1d8681095f158d11bc679a58f1d026b upstream.

clang static analysis reports this problem

mos7720.c:352:2: warning: Undefined or garbage value returned to caller
        return d;
        ^~~~~~~~

In the parport_mos7715_read_data()'s call to read_mos_reg(), 'd' is
only set after the alloc block.

	buf = kmalloc(1, GFP_KERNEL);
	if (!buf)
		return -ENOMEM;

Although the problem is reported in parport_most7715_read_data(),
none of the callee's of read_mos_reg() check the return status.

Make sure to clear the return-value buffer also on allocation failures.

Fixes: 0d130367abf5 ("USB: serial: mos7720: fix control-message error handling")
Signed-off-by: Tom Rix &lt;trix@redhat.com&gt;
Link: https://lore.kernel.org/r/20210111220904.1035957-1-trix@redhat.com
[ johan: only clear the buffer on errors, amend commit message ]
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 161a582bd1d8681095f158d11bc679a58f1d026b upstream.

clang static analysis reports this problem

mos7720.c:352:2: warning: Undefined or garbage value returned to caller
        return d;
        ^~~~~~~~

In the parport_mos7715_read_data()'s call to read_mos_reg(), 'd' is
only set after the alloc block.

	buf = kmalloc(1, GFP_KERNEL);
	if (!buf)
		return -ENOMEM;

Although the problem is reported in parport_most7715_read_data(),
none of the callee's of read_mos_reg() check the return status.

Make sure to clear the return-value buffer also on allocation failures.

Fixes: 0d130367abf5 ("USB: serial: mos7720: fix control-message error handling")
Signed-off-by: Tom Rix &lt;trix@redhat.com&gt;
Link: https://lore.kernel.org/r/20210111220904.1035957-1-trix@redhat.com
[ johan: only clear the buffer on errors, amend commit message ]
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 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>
</feed>
