aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-08-23 11:42:00 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-08-23 11:42:00 -0400
commitc3d3af52904b789cecd5a3915f0593bdbdc8dc58 (patch)
tree8791c7f50e95cd6bb3073c330bfb762735209127
parent6835a3a02b1ae222cbfb167a7e2d5e8df5e9854e (diff)
parent646907f5bfb0782c731ae9ff6fb63471a3566132 (diff)
Merge tag 'usb-serial-3.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into work-linus
Johan writes: USB-serial fixes for v3.17-rc2 These updates fix the log level for some option log messages that started bothering people after a recent change. They also fix some issues reported against the zte_ev driver by moving most device ids back from the zte_ev driver to the option driver (and removing two duplicate ids). The zte_ev driver is planned to be removed in 3.18. Some new device ids are also added. Signed-off-by: Johan Hovold <johan@kernel.org>
-rw-r--r--drivers/usb/serial/ftdi_sio.c3
-rw-r--r--drivers/usb/serial/ftdi_sio_ids.h7
-rw-r--r--drivers/usb/serial/option.c31
-rw-r--r--drivers/usb/serial/pl2303.c1
-rw-r--r--drivers/usb/serial/pl2303.h1
-rw-r--r--drivers/usb/serial/zte_ev.c20
6 files changed, 40 insertions, 23 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 216ce3078270..824ea5e7ec8b 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -146,6 +146,7 @@ static const struct usb_device_id id_table_combined[] = {
146 { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) }, 146 { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) },
147 { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) }, 147 { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) },
148 { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) }, 148 { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) },
149 { USB_DEVICE(FTDI_VID, FTDI_BM_ATOM_NANO_PID) },
149 { USB_DEVICE(FTDI_VID, FTDI_NXTCAM_PID) }, 150 { USB_DEVICE(FTDI_VID, FTDI_NXTCAM_PID) },
150 { USB_DEVICE(FTDI_VID, FTDI_EV3CON_PID) }, 151 { USB_DEVICE(FTDI_VID, FTDI_EV3CON_PID) },
151 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) }, 152 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) },
@@ -934,6 +935,8 @@ static const struct usb_device_id id_table_combined[] = {
934 { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_2_PID) }, 935 { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_2_PID) },
935 { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_3_PID) }, 936 { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_3_PID) },
936 { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_4_PID) }, 937 { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_4_PID) },
938 /* ekey Devices */
939 { USB_DEVICE(FTDI_VID, FTDI_EKEY_CONV_USB_PID) },
937 /* Infineon Devices */ 940 /* Infineon Devices */
938 { USB_DEVICE_INTERFACE_NUMBER(INFINEON_VID, INFINEON_TRIBOARD_PID, 1) }, 941 { USB_DEVICE_INTERFACE_NUMBER(INFINEON_VID, INFINEON_TRIBOARD_PID, 1) },
939 { } /* Terminating entry */ 942 { } /* Terminating entry */
diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
index 1e58d90a0b6c..70b0b1d88ae9 100644
--- a/drivers/usb/serial/ftdi_sio_ids.h
+++ b/drivers/usb/serial/ftdi_sio_ids.h
@@ -42,6 +42,8 @@
42/* www.candapter.com Ewert Energy Systems CANdapter device */ 42/* www.candapter.com Ewert Energy Systems CANdapter device */
43#define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ 43#define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */
44 44
45#define FTDI_BM_ATOM_NANO_PID 0xa559 /* Basic Micro ATOM Nano USB2Serial */
46
45/* 47/*
46 * Texas Instruments XDS100v2 JTAG / BeagleBone A3 48 * Texas Instruments XDS100v2 JTAG / BeagleBone A3
47 * http://processors.wiki.ti.com/index.php/XDS100 49 * http://processors.wiki.ti.com/index.php/XDS100
@@ -1378,3 +1380,8 @@
1378#define BRAINBOXES_US_160_6_PID 0x9006 /* US-160 16xRS232 1Mbaud Port 11 and 12 */ 1380#define BRAINBOXES_US_160_6_PID 0x9006 /* US-160 16xRS232 1Mbaud Port 11 and 12 */
1379#define BRAINBOXES_US_160_7_PID 0x9007 /* US-160 16xRS232 1Mbaud Port 13 and 14 */ 1381#define BRAINBOXES_US_160_7_PID 0x9007 /* US-160 16xRS232 1Mbaud Port 13 and 14 */
1380#define BRAINBOXES_US_160_8_PID 0x9008 /* US-160 16xRS232 1Mbaud Port 15 and 16 */ 1382#define BRAINBOXES_US_160_8_PID 0x9008 /* US-160 16xRS232 1Mbaud Port 15 and 16 */
1383
1384/*
1385 * ekey biometric systems GmbH (http://ekey.net/)
1386 */
1387#define FTDI_EKEY_CONV_USB_PID 0xCB08 /* Converter USB */
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index a9688940543d..54a8120897a6 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -275,8 +275,12 @@ static void option_instat_callback(struct urb *urb);
275#define ZTE_PRODUCT_MF622 0x0001 275#define ZTE_PRODUCT_MF622 0x0001
276#define ZTE_PRODUCT_MF628 0x0015 276#define ZTE_PRODUCT_MF628 0x0015
277#define ZTE_PRODUCT_MF626 0x0031 277#define ZTE_PRODUCT_MF626 0x0031
278#define ZTE_PRODUCT_MC2718 0xffe8
279#define ZTE_PRODUCT_AC2726 0xfff1 278#define ZTE_PRODUCT_AC2726 0xfff1
279#define ZTE_PRODUCT_CDMA_TECH 0xfffe
280#define ZTE_PRODUCT_AC8710T 0xffff
281#define ZTE_PRODUCT_MC2718 0xffe8
282#define ZTE_PRODUCT_AD3812 0xffeb
283#define ZTE_PRODUCT_MC2716 0xffed
280 284
281#define BENQ_VENDOR_ID 0x04a5 285#define BENQ_VENDOR_ID 0x04a5
282#define BENQ_PRODUCT_H10 0x4068 286#define BENQ_PRODUCT_H10 0x4068
@@ -494,6 +498,10 @@ static void option_instat_callback(struct urb *urb);
494#define INOVIA_VENDOR_ID 0x20a6 498#define INOVIA_VENDOR_ID 0x20a6
495#define INOVIA_SEW858 0x1105 499#define INOVIA_SEW858 0x1105
496 500
501/* VIA Telecom */
502#define VIATELECOM_VENDOR_ID 0x15eb
503#define VIATELECOM_PRODUCT_CDS7 0x0001
504
497/* some devices interfaces need special handling due to a number of reasons */ 505/* some devices interfaces need special handling due to a number of reasons */
498enum option_blacklist_reason { 506enum option_blacklist_reason {
499 OPTION_BLACKLIST_NONE = 0, 507 OPTION_BLACKLIST_NONE = 0,
@@ -527,10 +535,18 @@ static const struct option_blacklist_info zte_k3765_z_blacklist = {
527 .reserved = BIT(4), 535 .reserved = BIT(4),
528}; 536};
529 537
538static const struct option_blacklist_info zte_ad3812_z_blacklist = {
539 .sendsetup = BIT(0) | BIT(1) | BIT(2),
540};
541
530static const struct option_blacklist_info zte_mc2718_z_blacklist = { 542static const struct option_blacklist_info zte_mc2718_z_blacklist = {
531 .sendsetup = BIT(1) | BIT(2) | BIT(3) | BIT(4), 543 .sendsetup = BIT(1) | BIT(2) | BIT(3) | BIT(4),
532}; 544};
533 545
546static const struct option_blacklist_info zte_mc2716_z_blacklist = {
547 .sendsetup = BIT(1) | BIT(2) | BIT(3),
548};
549
534static const struct option_blacklist_info huawei_cdc12_blacklist = { 550static const struct option_blacklist_info huawei_cdc12_blacklist = {
535 .reserved = BIT(1) | BIT(2), 551 .reserved = BIT(1) | BIT(2),
536}; 552};
@@ -1070,6 +1086,7 @@ static const struct usb_device_id option_ids[] = {
1070 { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1012, 0xff) }, 1086 { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1012, 0xff) },
1071 { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC650) }, 1087 { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC650) },
1072 { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) }, 1088 { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) },
1089 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */
1073 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ 1090 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
1074 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ 1091 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
1075 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */ 1092 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */
@@ -1544,13 +1561,18 @@ static const struct usb_device_id option_ids[] = {
1544 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff93, 0xff, 0xff, 0xff) }, 1561 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff93, 0xff, 0xff, 0xff) },
1545 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff94, 0xff, 0xff, 0xff) }, 1562 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff94, 0xff, 0xff, 0xff) },
1546 1563
1547 /* NOTE: most ZTE CDMA devices should be driven by zte_ev, not option */ 1564 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) },
1565 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) },
1566 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710T, 0xff, 0xff, 0xff) },
1548 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2718, 0xff, 0xff, 0xff), 1567 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2718, 0xff, 0xff, 0xff),
1549 .driver_info = (kernel_ulong_t)&zte_mc2718_z_blacklist }, 1568 .driver_info = (kernel_ulong_t)&zte_mc2718_z_blacklist },
1569 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AD3812, 0xff, 0xff, 0xff),
1570 .driver_info = (kernel_ulong_t)&zte_ad3812_z_blacklist },
1571 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2716, 0xff, 0xff, 0xff),
1572 .driver_info = (kernel_ulong_t)&zte_mc2716_z_blacklist },
1550 { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x01) }, 1573 { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x01) },
1551 { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x05) }, 1574 { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x05) },
1552 { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x86, 0x10) }, 1575 { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x86, 0x10) },
1553 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) },
1554 1576
1555 { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, 1577 { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
1556 { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) }, 1578 { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
@@ -1724,6 +1746,7 @@ static const struct usb_device_id option_ids[] = {
1724 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */ 1746 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */
1725 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */ 1747 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */
1726 { USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) }, 1748 { USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) },
1749 { USB_DEVICE(VIATELECOM_VENDOR_ID, VIATELECOM_PRODUCT_CDS7) },
1727 { } /* Terminating entry */ 1750 { } /* Terminating entry */
1728}; 1751};
1729MODULE_DEVICE_TABLE(usb, option_ids); 1752MODULE_DEVICE_TABLE(usb, option_ids);
@@ -1916,6 +1939,8 @@ static void option_instat_callback(struct urb *urb)
1916 dev_dbg(dev, "%s: type %x req %x\n", __func__, 1939 dev_dbg(dev, "%s: type %x req %x\n", __func__,
1917 req_pkt->bRequestType, req_pkt->bRequest); 1940 req_pkt->bRequestType, req_pkt->bRequest);
1918 } 1941 }
1942 } else if (status == -ENOENT || status == -ESHUTDOWN) {
1943 dev_dbg(dev, "%s: urb stopped: %d\n", __func__, status);
1919 } else 1944 } else
1920 dev_err(dev, "%s: error %d\n", __func__, status); 1945 dev_err(dev, "%s: error %d\n", __func__, status);
1921 1946
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index b3d5a35c0d4b..e9bad928039f 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -45,6 +45,7 @@ static const struct usb_device_id id_table[] = {
45 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_GPRS) }, 45 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_GPRS) },
46 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_HCR331) }, 46 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_HCR331) },
47 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MOTOROLA) }, 47 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MOTOROLA) },
48 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_ZTEK) },
48 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, 49 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) },
49 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) }, 50 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) },
50 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) }, 51 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
index 42bc082896ac..71fd9da1d6e7 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -22,6 +22,7 @@
22#define PL2303_PRODUCT_ID_GPRS 0x0609 22#define PL2303_PRODUCT_ID_GPRS 0x0609
23#define PL2303_PRODUCT_ID_HCR331 0x331a 23#define PL2303_PRODUCT_ID_HCR331 0x331a
24#define PL2303_PRODUCT_ID_MOTOROLA 0x0307 24#define PL2303_PRODUCT_ID_MOTOROLA 0x0307
25#define PL2303_PRODUCT_ID_ZTEK 0xe1f1
25 26
26#define ATEN_VENDOR_ID 0x0557 27#define ATEN_VENDOR_ID 0x0557
27#define ATEN_VENDOR_ID2 0x0547 28#define ATEN_VENDOR_ID2 0x0547
diff --git a/drivers/usb/serial/zte_ev.c b/drivers/usb/serial/zte_ev.c
index e40ab739c4a6..1a132e9e947a 100644
--- a/drivers/usb/serial/zte_ev.c
+++ b/drivers/usb/serial/zte_ev.c
@@ -272,28 +272,8 @@ static void zte_ev_usb_serial_close(struct usb_serial_port *port)
272} 272}
273 273
274static const struct usb_device_id id_table[] = { 274static const struct usb_device_id id_table[] = {
275 /* AC8710, AC8710T */
276 { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffff, 0xff, 0xff, 0xff) },
277 /* AC8700 */
278 { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xfffe, 0xff, 0xff, 0xff) },
279 /* MG880 */ 275 /* MG880 */
280 { USB_DEVICE(0x19d2, 0xfffd) }, 276 { USB_DEVICE(0x19d2, 0xfffd) },
281 { USB_DEVICE(0x19d2, 0xfffc) },
282 { USB_DEVICE(0x19d2, 0xfffb) },
283 /* AC8710_V3 */
284 { USB_DEVICE(0x19d2, 0xfff6) },
285 { USB_DEVICE(0x19d2, 0xfff7) },
286 { USB_DEVICE(0x19d2, 0xfff8) },
287 { USB_DEVICE(0x19d2, 0xfff9) },
288 { USB_DEVICE(0x19d2, 0xffee) },
289 /* AC2716, MC2716 */
290 { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffed, 0xff, 0xff, 0xff) },
291 /* AD3812 */
292 { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffeb, 0xff, 0xff, 0xff) },
293 { USB_DEVICE(0x19d2, 0xffec) },
294 { USB_DEVICE(0x05C6, 0x3197) },
295 { USB_DEVICE(0x05C6, 0x6000) },
296 { USB_DEVICE(0x05C6, 0x9008) },
297 { }, 277 { },
298}; 278};
299MODULE_DEVICE_TABLE(usb, id_table); 279MODULE_DEVICE_TABLE(usb, id_table);