mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 01:10:04 +00:00
USB-serial fixes for 5.14-rc5
Here are two type-detection regression fixes for pl2303 and a patch to increase the receive buffer size for for ch341 to avoid lost characters at high line speeds. Included are also some new device ids. All but the last three commits have been in linux-next and with no reported issues. -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQQHbPq+cpGvN/peuzMLxc3C7H1lCAUCYQujDwAKCRALxc3C7H1l CN84AP97UMs0lyLQjHsLMxBJonpukAddo0Um3B3tEppy+Vhm5QEAixXRw5l9HkrL iqPFeBi9G6B9HNtCb8x4+ezfq7b94AA= =yJ8B -----END PGP SIGNATURE----- Merge tag 'usb-serial-5.14-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus Johan writes: USB-serial fixes for 5.14-rc5 Here are two type-detection regression fixes for pl2303 and a patch to increase the receive buffer size for for ch341 to avoid lost characters at high line speeds. Included are also some new device ids. All but the last three commits have been in linux-next and with no reported issues. * tag 'usb-serial-5.14-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial: USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2 USB: serial: pl2303: fix GT type detection USB: serial: option: add Telit FD980 composition 0x1056 USB: serial: pl2303: fix HX type detection USB: serial: ch341: fix character loss at high transfer rates
This commit is contained in:
commit
b47b0b6d08
5 changed files with 33 additions and 16 deletions
|
@ -851,6 +851,7 @@ static struct usb_serial_driver ch341_device = {
|
|||
.owner = THIS_MODULE,
|
||||
.name = "ch341-uart",
|
||||
},
|
||||
.bulk_in_size = 512,
|
||||
.id_table = id_table,
|
||||
.num_ports = 1,
|
||||
.open = ch341_open,
|
||||
|
|
|
@ -219,6 +219,7 @@ static const struct usb_device_id id_table_combined[] = {
|
|||
{ USB_DEVICE(FTDI_VID, FTDI_MTXORB_6_PID) },
|
||||
{ USB_DEVICE(FTDI_VID, FTDI_R2000KU_TRUE_RNG) },
|
||||
{ USB_DEVICE(FTDI_VID, FTDI_VARDAAN_PID) },
|
||||
{ USB_DEVICE(FTDI_VID, FTDI_AUTO_M3_OP_COM_V2_PID) },
|
||||
{ USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_0100_PID) },
|
||||
{ USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_0101_PID) },
|
||||
{ USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_0102_PID) },
|
||||
|
|
|
@ -159,6 +159,9 @@
|
|||
/* Vardaan Enterprises Serial Interface VEUSB422R3 */
|
||||
#define FTDI_VARDAAN_PID 0xF070
|
||||
|
||||
/* Auto-M3 Ltd. - OP-COM USB V2 - OBD interface Adapter */
|
||||
#define FTDI_AUTO_M3_OP_COM_V2_PID 0x4f50
|
||||
|
||||
/*
|
||||
* Xsens Technologies BV products (http://www.xsens.com).
|
||||
*/
|
||||
|
|
|
@ -1203,6 +1203,8 @@ static const struct usb_device_id option_ids[] = {
|
|||
.driver_info = NCTRL(2) | RSVD(3) },
|
||||
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1055, 0xff), /* Telit FN980 (PCIe) */
|
||||
.driver_info = NCTRL(0) | RSVD(1) },
|
||||
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1056, 0xff), /* Telit FD980 */
|
||||
.driver_info = NCTRL(2) | RSVD(3) },
|
||||
{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910),
|
||||
.driver_info = NCTRL(0) | RSVD(1) | RSVD(3) },
|
||||
{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM),
|
||||
|
|
|
@ -418,25 +418,35 @@ static int pl2303_detect_type(struct usb_serial *serial)
|
|||
bcdDevice = le16_to_cpu(desc->bcdDevice);
|
||||
bcdUSB = le16_to_cpu(desc->bcdUSB);
|
||||
|
||||
switch (bcdUSB) {
|
||||
case 0x110:
|
||||
switch (bcdDevice) {
|
||||
case 0x100:
|
||||
/*
|
||||
* Assume it's an HXN-type if the device doesn't support the old read
|
||||
* request value.
|
||||
*/
|
||||
if (bcdUSB == 0x200 && !pl2303_supports_hx_status(serial))
|
||||
return TYPE_HXN;
|
||||
break;
|
||||
case 0x300:
|
||||
if (bcdUSB == 0x200)
|
||||
return TYPE_TA;
|
||||
|
||||
return TYPE_HX;
|
||||
case 0x400:
|
||||
return TYPE_HXD;
|
||||
default:
|
||||
return TYPE_HX;
|
||||
}
|
||||
break;
|
||||
case 0x200:
|
||||
switch (bcdDevice) {
|
||||
case 0x100:
|
||||
case 0x305:
|
||||
/*
|
||||
* Assume it's an HXN-type if the device doesn't
|
||||
* support the old read request value.
|
||||
*/
|
||||
if (!pl2303_supports_hx_status(serial))
|
||||
return TYPE_HXN;
|
||||
break;
|
||||
case 0x300:
|
||||
return TYPE_TA;
|
||||
case 0x500:
|
||||
return TYPE_TB;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
dev_err(&serial->interface->dev,
|
||||
"unknown device type, please report to linux-usb@vger.kernel.org\n");
|
||||
|
|
Loading…
Reference in a new issue