Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'usb-4.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

I wrote:
"USB fixes for 4.19-rc7

Here are some small USB fixes for 4.19-rc7

These include:
- the usual xhci bugfixes for reported issues
- some new serial driver device ids
- bugfix for the option serial driver for some devices
- bugfix for the cdc_acm driver that has been there for a long time.

All of these have been in linux-next for a while with no reported
issues."

* tag 'usb-4.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
usb: xhci-mtk: resume USB3 roothub first
xhci: Add missing CAS workaround for Intel Sunrise Point xHCI
usb: cdc_acm: Do not leak URB buffers
USB: serial: simple: add Motorola Tetra MTP6550 id
USB: serial: option: add two-endpoints device-id flag
USB: serial: option: improve Quectel EP06 detection

+25 -5
+6
drivers/usb/class/cdc-acm.c
··· 1514 1514 { 1515 1515 struct acm *acm = usb_get_intfdata(intf); 1516 1516 struct tty_struct *tty; 1517 + int i; 1517 1518 1518 1519 /* sibling interface is already cleaning up */ 1519 1520 if (!acm) ··· 1545 1544 1546 1545 tty_unregister_device(acm_tty_driver, acm->minor); 1547 1546 1547 + usb_free_urb(acm->ctrlurb); 1548 + for (i = 0; i < ACM_NW; i++) 1549 + usb_free_urb(acm->wb[i].urb); 1550 + for (i = 0; i < acm->rx_buflimit; i++) 1551 + usb_free_urb(acm->read_urbs[i]); 1548 1552 acm_write_buffers_free(acm); 1549 1553 usb_free_coherent(acm->dev, acm->ctrlsize, acm->ctrl_buffer, acm->ctrl_dma); 1550 1554 acm_read_buffers_free(acm);
+2 -2
drivers/usb/host/xhci-mtk.c
··· 642 642 xhci_mtk_host_enable(mtk); 643 643 644 644 xhci_dbg(xhci, "%s: restart port polling\n", __func__); 645 - set_bit(HCD_FLAG_POLL_RH, &hcd->flags); 646 - usb_hcd_poll_rh_status(hcd); 647 645 set_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags); 648 646 usb_hcd_poll_rh_status(xhci->shared_hcd); 647 + set_bit(HCD_FLAG_POLL_RH, &hcd->flags); 648 + usb_hcd_poll_rh_status(hcd); 649 649 return 0; 650 650 } 651 651
+2
drivers/usb/host/xhci-pci.c
··· 185 185 } 186 186 if (pdev->vendor == PCI_VENDOR_ID_INTEL && 187 187 (pdev->device == PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI || 188 + pdev->device == PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_XHCI || 189 + pdev->device == PCI_DEVICE_ID_INTEL_SUNRISEPOINT_H_XHCI || 188 190 pdev->device == PCI_DEVICE_ID_INTEL_APL_XHCI || 189 191 pdev->device == PCI_DEVICE_ID_INTEL_DNV_XHCI)) 190 192 xhci->quirks |= XHCI_MISSING_CAS;
+13 -2
drivers/usb/serial/option.c
··· 561 561 /* Interface is reserved */ 562 562 #define RSVD(ifnum) ((BIT(ifnum) & 0xff) << 0) 563 563 564 + /* Interface must have two endpoints */ 565 + #define NUMEP2 BIT(16) 566 + 564 567 565 568 static const struct usb_device_id option_ids[] = { 566 569 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, ··· 1084 1081 .driver_info = RSVD(4) }, 1085 1082 { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), 1086 1083 .driver_info = RSVD(4) }, 1087 - { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06), 1088 - .driver_info = RSVD(4) | RSVD(5) }, 1084 + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), 1085 + .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, 1086 + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, 1089 1087 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, 1090 1088 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, 1091 1089 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003), ··· 2001 1997 * the Windows driver .INF files for reserved interface numbers. 2002 1998 */ 2003 1999 if (device_flags & RSVD(iface_desc->bInterfaceNumber)) 2000 + return -ENODEV; 2001 + 2002 + /* 2003 + * Allow matching on bNumEndpoints for devices whose interface numbers 2004 + * can change (e.g. Quectel EP06). 2005 + */ 2006 + if (device_flags & NUMEP2 && iface_desc->bNumEndpoints != 2) 2004 2007 return -ENODEV; 2005 2008 2006 2009 /* Store the device flags so we can use them during attach. */
+2 -1
drivers/usb/serial/usb-serial-simple.c
··· 84 84 85 85 /* Motorola Tetra driver */ 86 86 #define MOTOROLA_TETRA_IDS() \ 87 - { USB_DEVICE(0x0cad, 0x9011) } /* Motorola Solutions TETRA PEI */ 87 + { USB_DEVICE(0x0cad, 0x9011) }, /* Motorola Solutions TETRA PEI */ \ 88 + { USB_DEVICE(0x0cad, 0x9012) } /* MTP6550 */ 88 89 DEVICE(motorola_tetra, MOTOROLA_TETRA_IDS); 89 90 90 91 /* Novatel Wireless GPS driver */