Merge tag 'usb-serial-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus

Johan writes:

USB-serial fixes for v3.18-rc3

These updates remove two allocations of unused buffers from kobil_sct
and add some new device ids.

Signed-off-by: Johan Hovold <johan@kernel.org>

+25 -16
+1
drivers/usb/serial/cp210x.c
··· 155 155 { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */ 156 156 { USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */ 157 157 { USB_DEVICE(0x1B1C, 0x1C00) }, /* Corsair USB Dongle */ 158 + { USB_DEVICE(0x1BA4, 0x0002) }, /* Silicon Labs 358x factory default */ 158 159 { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */ 159 160 { USB_DEVICE(0x1D6F, 0x0010) }, /* Seluxit ApS RF Dongle */ 160 161 { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */
+3
drivers/usb/serial/ftdi_sio.c
··· 140 140 * /sys/bus/usb-serial/drivers/ftdi_sio/new_id and send a patch or report. 141 141 */ 142 142 static const struct usb_device_id id_table_combined[] = { 143 + { USB_DEVICE(FTDI_VID, FTDI_BRICK_PID) }, 143 144 { USB_DEVICE(FTDI_VID, FTDI_ZEITCONTROL_TAGTRACE_MIFARE_PID) }, 144 145 { USB_DEVICE(FTDI_VID, FTDI_CTI_MINI_PID) }, 145 146 { USB_DEVICE(FTDI_VID, FTDI_CTI_NANO_PID) }, ··· 662 661 { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_5_PID) }, 663 662 { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_6_PID) }, 664 663 { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_7_PID) }, 664 + { USB_DEVICE(XSENS_VID, XSENS_AWINDA_DONGLE_PID) }, 665 + { USB_DEVICE(XSENS_VID, XSENS_AWINDA_STATION_PID) }, 665 666 { USB_DEVICE(XSENS_VID, XSENS_CONVERTER_PID) }, 666 667 { USB_DEVICE(XSENS_VID, XSENS_MTW_PID) }, 667 668 { USB_DEVICE(FTDI_VID, FTDI_OMNI1509) },
+11 -1
drivers/usb/serial/ftdi_sio_ids.h
··· 30 30 31 31 /*** third-party PIDs (using FTDI_VID) ***/ 32 32 33 + /* 34 + * Certain versions of the official Windows FTDI driver reprogrammed 35 + * counterfeit FTDI devices to PID 0. Support these devices anyway. 36 + */ 37 + #define FTDI_BRICK_PID 0x0000 38 + 33 39 #define FTDI_LUMEL_PD12_PID 0x6002 34 40 35 41 /* ··· 149 143 * Xsens Technologies BV products (http://www.xsens.com). 150 144 */ 151 145 #define XSENS_VID 0x2639 152 - #define XSENS_CONVERTER_PID 0xD00D /* Xsens USB-serial converter */ 146 + #define XSENS_AWINDA_STATION_PID 0x0101 147 + #define XSENS_AWINDA_DONGLE_PID 0x0102 153 148 #define XSENS_MTW_PID 0x0200 /* Xsens MTw */ 149 + #define XSENS_CONVERTER_PID 0xD00D /* Xsens USB-serial converter */ 150 + 151 + /* Xsens devices using FTDI VID */ 154 152 #define XSENS_CONVERTER_0_PID 0xD388 /* Xsens USB converter */ 155 153 #define XSENS_CONVERTER_1_PID 0xD389 /* Xsens Wireless Receiver */ 156 154 #define XSENS_CONVERTER_2_PID 0xD38A
-15
drivers/usb/serial/kobil_sct.c
··· 414 414 int result; 415 415 int dtr = 0; 416 416 int rts = 0; 417 - unsigned char *transfer_buffer; 418 - int transfer_buffer_length = 8; 419 417 420 418 /* FIXME: locking ? */ 421 419 priv = usb_get_serial_port_data(port); ··· 422 424 /* This device doesn't support ioctl calls */ 423 425 return -EINVAL; 424 426 } 425 - 426 - /* allocate memory for transfer buffer */ 427 - transfer_buffer = kzalloc(transfer_buffer_length, GFP_KERNEL); 428 - if (!transfer_buffer) 429 - return -ENOMEM; 430 427 431 428 if (set & TIOCM_RTS) 432 429 rts = 1; ··· 462 469 KOBIL_TIMEOUT); 463 470 } 464 471 dev_dbg(dev, "%s - Send set_status_line URB returns: %i\n", __func__, result); 465 - kfree(transfer_buffer); 466 472 return (result < 0) ? result : 0; 467 473 } 468 474 ··· 522 530 { 523 531 struct usb_serial_port *port = tty->driver_data; 524 532 struct kobil_private *priv = usb_get_serial_port_data(port); 525 - unsigned char *transfer_buffer; 526 - int transfer_buffer_length = 8; 527 533 int result; 528 534 529 535 if (priv->device_type == KOBIL_USBTWIN_PRODUCT_ID || ··· 531 541 532 542 switch (cmd) { 533 543 case TCFLSH: 534 - transfer_buffer = kmalloc(transfer_buffer_length, GFP_KERNEL); 535 - if (!transfer_buffer) 536 - return -ENOBUFS; 537 - 538 544 result = usb_control_msg(port->serial->dev, 539 545 usb_sndctrlpipe(port->serial->dev, 0), 540 546 SUSBCRequest_Misc, ··· 545 559 dev_dbg(&port->dev, 546 560 "%s - Send reset_all_queues (FLUSH) URB returns: %i\n", 547 561 __func__, result); 548 - kfree(transfer_buffer); 549 562 return (result < 0) ? -EIO: 0; 550 563 default: 551 564 return -ENOIOCTLCMD;
+10
drivers/usb/serial/option.c
··· 269 269 #define TELIT_PRODUCT_DE910_DUAL 0x1010 270 270 #define TELIT_PRODUCT_UE910_V2 0x1012 271 271 #define TELIT_PRODUCT_LE920 0x1200 272 + #define TELIT_PRODUCT_LE910 0x1201 272 273 273 274 /* ZTE PRODUCTS */ 274 275 #define ZTE_VENDOR_ID 0x19d2 ··· 363 362 364 363 /* Haier products */ 365 364 #define HAIER_VENDOR_ID 0x201e 365 + #define HAIER_PRODUCT_CE81B 0x10f8 366 366 #define HAIER_PRODUCT_CE100 0x2009 367 367 368 368 /* Cinterion (formerly Siemens) products */ ··· 589 587 590 588 static const struct option_blacklist_info zte_1255_blacklist = { 591 589 .reserved = BIT(3) | BIT(4), 590 + }; 591 + 592 + static const struct option_blacklist_info telit_le910_blacklist = { 593 + .sendsetup = BIT(0), 594 + .reserved = BIT(1) | BIT(2), 592 595 }; 593 596 594 597 static const struct option_blacklist_info telit_le920_blacklist = { ··· 1145 1138 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) }, 1146 1139 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) }, 1147 1140 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) }, 1141 + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910), 1142 + .driver_info = (kernel_ulong_t)&telit_le910_blacklist }, 1148 1143 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920), 1149 1144 .driver_info = (kernel_ulong_t)&telit_le920_blacklist }, 1150 1145 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ ··· 1630 1621 { USB_DEVICE(LONGCHEER_VENDOR_ID, ZOOM_PRODUCT_4597) }, 1631 1622 { USB_DEVICE(LONGCHEER_VENDOR_ID, IBALL_3_5G_CONNECT) }, 1632 1623 { USB_DEVICE(HAIER_VENDOR_ID, HAIER_PRODUCT_CE100) }, 1624 + { USB_DEVICE_AND_INTERFACE_INFO(HAIER_VENDOR_ID, HAIER_PRODUCT_CE81B, 0xff, 0xff, 0xff) }, 1633 1625 /* Pirelli */ 1634 1626 { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_C100_1, 0xff) }, 1635 1627 { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_C100_2, 0xff) },