Skip to content

Commit d65d25b

Browse files
committed
Merge tag 'usb-serial-5.1-rc3' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
Johan writes: USB-serial fixes for 5.1-rc3 Here's a fix for a long-standing refcount issue in the mos7720 parport implementation, and a set of device id updates. All have been in linux-next with no reported issues. Signed-off-by: Johan Hovold <johan@kernel.org> * tag 'usb-serial-5.1-rc3' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial: USB: serial: option: add Olicard 600 USB: serial: cp210x: add new device id USB: serial: mos7720: fix mos_parport refcount imbalance on error path USB: serial: option: set driver_info for SIM5218 and compatibles USB: serial: ftdi_sio: add additional NovaTech products USB: serial: option: add support for Quectel EM12
2 parents 87be92b + 84f3b43 commit d65d25b

File tree

5 files changed

+20
-8
lines changed

5 files changed

+20
-8
lines changed

drivers/usb/serial/cp210x.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ static const struct usb_device_id id_table[] = {
8080
{ USB_DEVICE(0x10C4, 0x804E) }, /* Software Bisque Paramount ME build-in converter */
8181
{ USB_DEVICE(0x10C4, 0x8053) }, /* Enfora EDG1228 */
8282
{ USB_DEVICE(0x10C4, 0x8054) }, /* Enfora GSM2228 */
83+
{ USB_DEVICE(0x10C4, 0x8056) }, /* Lorenz Messtechnik devices */
8384
{ USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */
8485
{ USB_DEVICE(0x10C4, 0x806F) }, /* IMS USB to RS422 Converter Cable */
8586
{ USB_DEVICE(0x10C4, 0x807A) }, /* Crumb128 board */

drivers/usb/serial/ftdi_sio.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -609,6 +609,8 @@ static const struct usb_device_id id_table_combined[] = {
609609
.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
610610
{ USB_DEVICE(FTDI_VID, FTDI_NT_ORIONLXM_PID),
611611
.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
612+
{ USB_DEVICE(FTDI_VID, FTDI_NT_ORIONLX_PLUS_PID) },
613+
{ USB_DEVICE(FTDI_VID, FTDI_NT_ORION_IO_PID) },
612614
{ USB_DEVICE(FTDI_VID, FTDI_SYNAPSE_SS200_PID) },
613615
{ USB_DEVICE(FTDI_VID, FTDI_CUSTOMWARE_MINIPLEX_PID) },
614616
{ USB_DEVICE(FTDI_VID, FTDI_CUSTOMWARE_MINIPLEX2_PID) },

drivers/usb/serial/ftdi_sio_ids.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,9 @@
567567
/*
568568
* NovaTech product ids (FTDI_VID)
569569
*/
570-
#define FTDI_NT_ORIONLXM_PID 0x7c90 /* OrionLXm Substation Automation Platform */
570+
#define FTDI_NT_ORIONLXM_PID 0x7c90 /* OrionLXm Substation Automation Platform */
571+
#define FTDI_NT_ORIONLX_PLUS_PID 0x7c91 /* OrionLX+ Substation Automation Platform */
572+
#define FTDI_NT_ORION_IO_PID 0x7c92 /* Orion I/O */
571573

572574
/*
573575
* Synapse Wireless product ids (FTDI_VID)

drivers/usb/serial/mos7720.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,6 @@ static int write_parport_reg_nonblock(struct mos7715_parport *mos_parport,
366366
if (!urbtrack)
367367
return -ENOMEM;
368368

369-
kref_get(&mos_parport->ref_count);
370-
urbtrack->mos_parport = mos_parport;
371369
urbtrack->urb = usb_alloc_urb(0, GFP_ATOMIC);
372370
if (!urbtrack->urb) {
373371
kfree(urbtrack);
@@ -388,6 +386,8 @@ static int write_parport_reg_nonblock(struct mos7715_parport *mos_parport,
388386
usb_sndctrlpipe(usbdev, 0),
389387
(unsigned char *)urbtrack->setup,
390388
NULL, 0, async_complete, urbtrack);
389+
kref_get(&mos_parport->ref_count);
390+
urbtrack->mos_parport = mos_parport;
391391
kref_init(&urbtrack->ref_count);
392392
INIT_LIST_HEAD(&urbtrack->urblist_entry);
393393

drivers/usb/serial/option.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ static void option_instat_callback(struct urb *urb);
246246
#define QUECTEL_PRODUCT_EC25 0x0125
247247
#define QUECTEL_PRODUCT_BG96 0x0296
248248
#define QUECTEL_PRODUCT_EP06 0x0306
249+
#define QUECTEL_PRODUCT_EM12 0x0512
249250

250251
#define CMOTECH_VENDOR_ID 0x16d8
251252
#define CMOTECH_PRODUCT_6001 0x6001
@@ -1066,7 +1067,8 @@ static const struct usb_device_id option_ids[] = {
10661067
.driver_info = RSVD(3) },
10671068
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
10681069
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
1069-
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */
1070+
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
1071+
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
10701072
/* Quectel products using Qualcomm vendor ID */
10711073
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
10721074
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
@@ -1087,6 +1089,9 @@ static const struct usb_device_id option_ids[] = {
10871089
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
10881090
.driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
10891091
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },
1092+
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0xff, 0xff),
1093+
.driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
1094+
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0, 0) },
10901095
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
10911096
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
10921097
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003),
@@ -1940,10 +1945,12 @@ static const struct usb_device_id option_ids[] = {
19401945
.driver_info = RSVD(4) },
19411946
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff), /* D-Link DWM-222 */
19421947
.driver_info = RSVD(4) },
1943-
{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */
1944-
{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */
1945-
{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/A3 */
1946-
{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x4000, 0xff) }, /* OLICARD300 - MT6225 */
1948+
{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */
1949+
{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */
1950+
{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/A3 */
1951+
{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2031, 0xff), /* Olicard 600 */
1952+
.driver_info = RSVD(4) },
1953+
{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x4000, 0xff) }, /* OLICARD300 - MT6225 */
19471954
{ USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) },
19481955
{ USB_DEVICE(VIATELECOM_VENDOR_ID, VIATELECOM_PRODUCT_CDS7) },
19491956
{ USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD200, 0xff, 0xff, 0xff) },

0 commit comments

Comments
 (0)