diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-03-29 10:31:16 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-03-29 10:31:16 -0400 |
| commit | d65d25b84f1f19cc35819a733576cafc54adc275 (patch) | |
| tree | 99d0de3ecaee98c96d2c57d235a2d15ca25d21c9 | |
| parent | 87be92b903abd0fafbfdde71f3caa24f9cd5ecbe (diff) | |
| parent | 84f3b43f7378b98b7e3096d5499de75183d4347c (diff) | |
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
| -rw-r--r-- | drivers/usb/serial/cp210x.c | 1 | ||||
| -rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 2 | ||||
| -rw-r--r-- | drivers/usb/serial/ftdi_sio_ids.h | 4 | ||||
| -rw-r--r-- | drivers/usb/serial/mos7720.c | 4 | ||||
| -rw-r--r-- | drivers/usb/serial/option.c | 17 |
5 files changed, 20 insertions, 8 deletions
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c index fffe23ab0189..979bef9bfb6b 100644 --- a/drivers/usb/serial/cp210x.c +++ b/drivers/usb/serial/cp210x.c | |||
| @@ -80,6 +80,7 @@ static const struct usb_device_id id_table[] = { | |||
| 80 | { USB_DEVICE(0x10C4, 0x804E) }, /* Software Bisque Paramount ME build-in converter */ | 80 | { USB_DEVICE(0x10C4, 0x804E) }, /* Software Bisque Paramount ME build-in converter */ |
| 81 | { USB_DEVICE(0x10C4, 0x8053) }, /* Enfora EDG1228 */ | 81 | { USB_DEVICE(0x10C4, 0x8053) }, /* Enfora EDG1228 */ |
| 82 | { USB_DEVICE(0x10C4, 0x8054) }, /* Enfora GSM2228 */ | 82 | { USB_DEVICE(0x10C4, 0x8054) }, /* Enfora GSM2228 */ |
| 83 | { USB_DEVICE(0x10C4, 0x8056) }, /* Lorenz Messtechnik devices */ | ||
| 83 | { USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */ | 84 | { USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */ |
| 84 | { USB_DEVICE(0x10C4, 0x806F) }, /* IMS USB to RS422 Converter Cable */ | 85 | { USB_DEVICE(0x10C4, 0x806F) }, /* IMS USB to RS422 Converter Cable */ |
| 85 | { USB_DEVICE(0x10C4, 0x807A) }, /* Crumb128 board */ | 86 | { USB_DEVICE(0x10C4, 0x807A) }, /* Crumb128 board */ |
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 8f5b17471759..1d8461ae2c34 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
| @@ -609,6 +609,8 @@ static const struct usb_device_id id_table_combined[] = { | |||
| 609 | .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, | 609 | .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, |
| 610 | { USB_DEVICE(FTDI_VID, FTDI_NT_ORIONLXM_PID), | 610 | { USB_DEVICE(FTDI_VID, FTDI_NT_ORIONLXM_PID), |
| 611 | .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, | 611 | .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) }, | ||
| 612 | { USB_DEVICE(FTDI_VID, FTDI_SYNAPSE_SS200_PID) }, | 614 | { USB_DEVICE(FTDI_VID, FTDI_SYNAPSE_SS200_PID) }, |
| 613 | { USB_DEVICE(FTDI_VID, FTDI_CUSTOMWARE_MINIPLEX_PID) }, | 615 | { USB_DEVICE(FTDI_VID, FTDI_CUSTOMWARE_MINIPLEX_PID) }, |
| 614 | { USB_DEVICE(FTDI_VID, FTDI_CUSTOMWARE_MINIPLEX2_PID) }, | 616 | { USB_DEVICE(FTDI_VID, FTDI_CUSTOMWARE_MINIPLEX2_PID) }, |
diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h index b863bedb55a1..5755f0df0025 100644 --- a/drivers/usb/serial/ftdi_sio_ids.h +++ b/drivers/usb/serial/ftdi_sio_ids.h | |||
| @@ -567,7 +567,9 @@ | |||
| 567 | /* | 567 | /* |
| 568 | * NovaTech product ids (FTDI_VID) | 568 | * NovaTech product ids (FTDI_VID) |
| 569 | */ | 569 | */ |
| 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 */ | ||
| 571 | 573 | ||
| 572 | /* | 574 | /* |
| 573 | * Synapse Wireless product ids (FTDI_VID) | 575 | * Synapse Wireless product ids (FTDI_VID) |
diff --git a/drivers/usb/serial/mos7720.c b/drivers/usb/serial/mos7720.c index fc52ac75fbf6..18110225d506 100644 --- a/drivers/usb/serial/mos7720.c +++ b/drivers/usb/serial/mos7720.c | |||
| @@ -366,8 +366,6 @@ static int write_parport_reg_nonblock(struct mos7715_parport *mos_parport, | |||
| 366 | if (!urbtrack) | 366 | if (!urbtrack) |
| 367 | return -ENOMEM; | 367 | return -ENOMEM; |
| 368 | 368 | ||
| 369 | kref_get(&mos_parport->ref_count); | ||
| 370 | urbtrack->mos_parport = mos_parport; | ||
| 371 | urbtrack->urb = usb_alloc_urb(0, GFP_ATOMIC); | 369 | urbtrack->urb = usb_alloc_urb(0, GFP_ATOMIC); |
| 372 | if (!urbtrack->urb) { | 370 | if (!urbtrack->urb) { |
| 373 | kfree(urbtrack); | 371 | kfree(urbtrack); |
| @@ -388,6 +386,8 @@ static int write_parport_reg_nonblock(struct mos7715_parport *mos_parport, | |||
| 388 | usb_sndctrlpipe(usbdev, 0), | 386 | usb_sndctrlpipe(usbdev, 0), |
| 389 | (unsigned char *)urbtrack->setup, | 387 | (unsigned char *)urbtrack->setup, |
| 390 | NULL, 0, async_complete, urbtrack); | 388 | NULL, 0, async_complete, urbtrack); |
| 389 | kref_get(&mos_parport->ref_count); | ||
| 390 | urbtrack->mos_parport = mos_parport; | ||
| 391 | kref_init(&urbtrack->ref_count); | 391 | kref_init(&urbtrack->ref_count); |
| 392 | INIT_LIST_HEAD(&urbtrack->urblist_entry); | 392 | INIT_LIST_HEAD(&urbtrack->urblist_entry); |
| 393 | 393 | ||
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 11b21d9410f3..83869065b802 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
| @@ -246,6 +246,7 @@ static void option_instat_callback(struct urb *urb); | |||
| 246 | #define QUECTEL_PRODUCT_EC25 0x0125 | 246 | #define QUECTEL_PRODUCT_EC25 0x0125 |
| 247 | #define QUECTEL_PRODUCT_BG96 0x0296 | 247 | #define QUECTEL_PRODUCT_BG96 0x0296 |
| 248 | #define QUECTEL_PRODUCT_EP06 0x0306 | 248 | #define QUECTEL_PRODUCT_EP06 0x0306 |
| 249 | #define QUECTEL_PRODUCT_EM12 0x0512 | ||
| 249 | 250 | ||
| 250 | #define CMOTECH_VENDOR_ID 0x16d8 | 251 | #define CMOTECH_VENDOR_ID 0x16d8 |
| 251 | #define CMOTECH_PRODUCT_6001 0x6001 | 252 | #define CMOTECH_PRODUCT_6001 0x6001 |
| @@ -1066,7 +1067,8 @@ static const struct usb_device_id option_ids[] = { | |||
| 1066 | .driver_info = RSVD(3) }, | 1067 | .driver_info = RSVD(3) }, |
| 1067 | { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ | 1068 | { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ |
| 1068 | { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ | 1069 | { 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) }, | ||
| 1070 | /* Quectel products using Qualcomm vendor ID */ | 1072 | /* Quectel products using Qualcomm vendor ID */ |
| 1071 | { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)}, | 1073 | { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)}, |
| 1072 | { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20), | 1074 | { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20), |
| @@ -1087,6 +1089,9 @@ static const struct usb_device_id option_ids[] = { | |||
| 1087 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), | 1089 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), |
| 1088 | .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, | 1090 | .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, |
| 1089 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, | 1091 | { 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) }, | ||
| 1090 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, | 1095 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, |
| 1091 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, | 1096 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, |
| 1092 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003), | 1097 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003), |
| @@ -1940,10 +1945,12 @@ static const struct usb_device_id option_ids[] = { | |||
| 1940 | .driver_info = RSVD(4) }, | 1945 | .driver_info = RSVD(4) }, |
| 1941 | { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff), /* D-Link DWM-222 */ | 1946 | { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff), /* D-Link DWM-222 */ |
| 1942 | .driver_info = RSVD(4) }, | 1947 | .driver_info = RSVD(4) }, |
| 1943 | { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */ | 1948 | { 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 */ | 1949 | { 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 */ | 1950 | { 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 */ | 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 */ | ||
| 1947 | { USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) }, | 1954 | { USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) }, |
| 1948 | { USB_DEVICE(VIATELECOM_VENDOR_ID, VIATELECOM_PRODUCT_CDS7) }, | 1955 | { USB_DEVICE(VIATELECOM_VENDOR_ID, VIATELECOM_PRODUCT_CDS7) }, |
| 1949 | { USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD200, 0xff, 0xff, 0xff) }, | 1956 | { USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD200, 0xff, 0xff, 0xff) }, |
