Skip to content

Commit 177c459

Browse files
committed
Merge tag 'usb-4.20-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB fixes and ids from Greg KH: "Here are some late xhci fixes for 4.20-rc8 as well as a few new device ids for the option usb-serial driver. The xhci fixes resolve some many-reported issues and all of these have been in linux-next for a while with no reported problems" * tag 'usb-4.20-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: USB: xhci: fix 'broken_suspend' placement in struct xchi_hcd xhci: Don't prevent USB2 bus suspend in state check intended for USB3 only USB: serial: option: add Telit LN940 series USB: serial: option: add Fibocom NL668 series USB: serial: option: add Simcom SIM7500/SIM7600 (MBIM mode) USB: serial: option: add GosunCn ZTE WeLink ME3630 USB: serial: option: add HP lt4132
2 parents d31aeb7 + 2419f30 commit 177c459

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

drivers/usb/host/xhci-hub.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1507,7 +1507,8 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
15071507
portsc_buf[port_index] = 0;
15081508

15091509
/* Bail out if a USB3 port has a new device in link training */
1510-
if ((t1 & PORT_PLS_MASK) == XDEV_POLLING) {
1510+
if ((hcd->speed >= HCD_USB3) &&
1511+
(t1 & PORT_PLS_MASK) == XDEV_POLLING) {
15111512
bus_state->bus_suspended = 0;
15121513
spin_unlock_irqrestore(&xhci->lock, flags);
15131514
xhci_dbg(xhci, "Bus suspend bailout, port in polling\n");

drivers/usb/host/xhci.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1863,6 +1863,8 @@ struct xhci_hcd {
18631863
unsigned sw_lpm_support:1;
18641864
/* support xHCI 1.0 spec USB2 hardware LPM */
18651865
unsigned hw_lpm_support:1;
1866+
/* Broken Suspend flag for SNPS Suspend resume issue */
1867+
unsigned broken_suspend:1;
18661868
/* cached usb2 extened protocol capabilites */
18671869
u32 *ext_caps;
18681870
unsigned int num_ext_caps;
@@ -1880,8 +1882,6 @@ struct xhci_hcd {
18801882
void *dbc;
18811883
/* platform-specific data -- must come last */
18821884
unsigned long priv[0] __aligned(sizeof(s64));
1883-
/* Broken Suspend flag for SNPS Suspend resume issue */
1884-
u8 broken_suspend;
18851885
};
18861886

18871887
/* Platform specific overrides to generic XHCI hc_driver ops */

drivers/usb/serial/option.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1164,6 +1164,10 @@ static const struct usb_device_id option_ids[] = {
11641164
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1213, 0xff) },
11651165
{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1214),
11661166
.driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
1167+
{ USB_DEVICE(TELIT_VENDOR_ID, 0x1900), /* Telit LN940 (QMI) */
1168+
.driver_info = NCTRL(0) | RSVD(1) },
1169+
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1901, 0xff), /* Telit LN940 (MBIM) */
1170+
.driver_info = NCTRL(0) },
11671171
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */
11681172
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff),
11691173
.driver_info = RSVD(1) },
@@ -1328,6 +1332,7 @@ static const struct usb_device_id option_ids[] = {
13281332
.driver_info = RSVD(4) },
13291333
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0414, 0xff, 0xff, 0xff) },
13301334
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0417, 0xff, 0xff, 0xff) },
1335+
{ USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x0602, 0xff) }, /* GosunCn ZTE WeLink ME3630 (MBIM mode) */
13311336
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff),
13321337
.driver_info = RSVD(4) },
13331338
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff),
@@ -1531,6 +1536,7 @@ static const struct usb_device_id option_ids[] = {
15311536
.driver_info = RSVD(2) },
15321537
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1428, 0xff, 0xff, 0xff), /* Telewell TW-LTE 4G v2 */
15331538
.driver_info = RSVD(2) },
1539+
{ USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x1476, 0xff) }, /* GosunCn ZTE WeLink ME3630 (ECM/NCM mode) */
15341540
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) },
15351541
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) },
15361542
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) },
@@ -1758,6 +1764,7 @@ static const struct usb_device_id option_ids[] = {
17581764
{ USB_DEVICE_AND_INTERFACE_INFO(ALINK_VENDOR_ID, ALINK_PRODUCT_3GU, 0xff, 0xff, 0xff) },
17591765
{ USB_DEVICE(ALINK_VENDOR_ID, SIMCOM_PRODUCT_SIM7100E),
17601766
.driver_info = RSVD(5) | RSVD(6) },
1767+
{ USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9003, 0xff) }, /* Simcom SIM7500/SIM7600 MBIM mode */
17611768
{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X060S_X200),
17621769
.driver_info = NCTRL(0) | NCTRL(1) | RSVD(4) },
17631770
{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X220_X500D),
@@ -1940,7 +1947,14 @@ static const struct usb_device_id option_ids[] = {
19401947
{ USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD200, 0xff, 0xff, 0xff) },
19411948
{ USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_6802, 0xff, 0xff, 0xff) },
19421949
{ USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD300, 0xff, 0xff, 0xff) },
1943-
{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x421d, 0xff, 0xff, 0xff) }, /* HP lt2523 (Novatel E371) */
1950+
{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x421d, 0xff, 0xff, 0xff) }, /* HP lt2523 (Novatel E371) */
1951+
{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x10) }, /* HP lt4132 (Huawei ME906s-158) */
1952+
{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x12) },
1953+
{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x13) },
1954+
{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x14) },
1955+
{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x1b) },
1956+
{ USB_DEVICE(0x1508, 0x1001), /* Fibocom NL668 */
1957+
.driver_info = RSVD(4) | RSVD(5) | RSVD(6) },
19441958
{ } /* Terminating entry */
19451959
};
19461960
MODULE_DEVICE_TABLE(usb, option_ids);

0 commit comments

Comments
 (0)