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-5.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB fixes from Greg KH:
"Here are some small USB fixes and new device ids:

- USB gadget fixes for some reported issues

- Fixes for the ever-troublesome apple fastcharge driver, hopefully
we finally have it right.

- More USB core quirks for odd devices

- USB serial driver fixes for some long-standing issues that were
recently found

- some new USB serial driver device ids

All have been in linux-next with no reported issues"

* tag 'usb-5.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
USB: apple-mfi-fastcharge: fix reference leak in apple_mfi_fc_set_property
usb: mtu3: fix panic in mtu3_gadget_stop()
USB: serial: option: add Telit FN980 composition 0x1055
USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
USB: serial: cyberjack: fix write-URB completion race
USB: Add NO_LPM quirk for Kingston flash drive
USB: serial: option: add Quectel EC200T module support
usb: raw-gadget: fix memory leak in gadget_setup
usb: dwc2: Avoid leaving the error_debugfs label unused
usb: dwc3: ep0: Fix delay status handling
usb: gadget: fsl: fix null pointer checking
usb: gadget: goku_udc: fix potential crashes in probe
usb: dwc3: pci: add support for the Intel Alder Lake-S

+38 -6
+3
drivers/usb/core/quirks.c
··· 378 378 { USB_DEVICE(0x0926, 0x3333), .driver_info = 379 379 USB_QUIRK_CONFIG_INTF_STRINGS }, 380 380 381 + /* Kingston DataTraveler 3.0 */ 382 + { USB_DEVICE(0x0951, 0x1666), .driver_info = USB_QUIRK_NO_LPM }, 383 + 381 384 /* X-Rite/Gretag-Macbeth Eye-One Pro display colorimeter */ 382 385 { USB_DEVICE(0x0971, 0x2000), .driver_info = USB_QUIRK_NO_SET_INTF }, 383 386
+3
drivers/usb/dwc2/platform.c
··· 608 608 #endif /* CONFIG_USB_DWC2_PERIPHERAL || CONFIG_USB_DWC2_DUAL_ROLE */ 609 609 return 0; 610 610 611 + #if IS_ENABLED(CONFIG_USB_DWC2_PERIPHERAL) || \ 612 + IS_ENABLED(CONFIG_USB_DWC2_DUAL_ROLE) 611 613 error_debugfs: 612 614 dwc2_debugfs_exit(hsotg); 613 615 if (hsotg->hcd_enabled) 614 616 dwc2_hcd_remove(hsotg); 617 + #endif 615 618 error_drd: 616 619 dwc2_drd_exit(hsotg); 617 620
+4
drivers/usb/dwc3/dwc3-pci.c
··· 40 40 #define PCI_DEVICE_ID_INTEL_TGPLP 0xa0ee 41 41 #define PCI_DEVICE_ID_INTEL_TGPH 0x43ee 42 42 #define PCI_DEVICE_ID_INTEL_JSP 0x4dee 43 + #define PCI_DEVICE_ID_INTEL_ADLS 0x7ae1 43 44 44 45 #define PCI_INTEL_BXT_DSM_GUID "732b85d5-b7a7-4a1b-9ba0-4bbd00ffd511" 45 46 #define PCI_INTEL_BXT_FUNC_PMU_PWR 4 ··· 366 365 (kernel_ulong_t) &dwc3_pci_intel_properties, }, 367 366 368 367 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_JSP), 368 + (kernel_ulong_t) &dwc3_pci_intel_properties, }, 369 + 370 + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ADLS), 369 371 (kernel_ulong_t) &dwc3_pci_intel_properties, }, 370 372 371 373 { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_NL_USB),
+2 -1
drivers/usb/dwc3/ep0.c
··· 1058 1058 { 1059 1059 unsigned int direction = !dwc->ep0_expect_in; 1060 1060 1061 + dwc->delayed_status = false; 1062 + 1061 1063 if (dwc->ep0state != EP0_STATUS_PHASE) 1062 1064 return; 1063 1065 1064 - dwc->delayed_status = false; 1065 1066 __dwc3_ep0_do_control_status(dwc, dwc->eps[direction]); 1066 1067 } 1067 1068
+4 -1
drivers/usb/gadget/legacy/raw_gadget.c
··· 564 564 return -ENODEV; 565 565 } 566 566 length = min(arg.length, event->length); 567 - if (copy_to_user((void __user *)value, event, sizeof(*event) + length)) 567 + if (copy_to_user((void __user *)value, event, sizeof(*event) + length)) { 568 + kfree(event); 568 569 return -EFAULT; 570 + } 569 571 572 + kfree(event); 570 573 return 0; 571 574 } 572 575
+1 -1
drivers/usb/gadget/udc/fsl_udc_core.c
··· 1051 1051 u32 bitmask; 1052 1052 struct ep_queue_head *qh; 1053 1053 1054 - if (!_ep || _ep->desc || !(_ep->desc->bEndpointAddress&0xF)) 1054 + if (!_ep || !_ep->desc || !(_ep->desc->bEndpointAddress&0xF)) 1055 1055 return -ENODEV; 1056 1056 1057 1057 ep = container_of(_ep, struct fsl_ep, ep);
+1 -1
drivers/usb/gadget/udc/goku_udc.c
··· 1760 1760 goto err; 1761 1761 } 1762 1762 1763 + pci_set_drvdata(pdev, dev); 1763 1764 spin_lock_init(&dev->lock); 1764 1765 dev->pdev = pdev; 1765 1766 dev->gadget.ops = &goku_ops; ··· 1794 1793 } 1795 1794 dev->regs = (struct goku_udc_regs __iomem *) base; 1796 1795 1797 - pci_set_drvdata(pdev, dev); 1798 1796 INFO(dev, "%s\n", driver_desc); 1799 1797 INFO(dev, "version: " DRIVER_VERSION " %s\n", dmastr()); 1800 1798 INFO(dev, "irq %d, pci mem %p\n", pdev->irq, base);
+3 -1
drivers/usb/misc/apple-mfi-fastcharge.c
··· 120 120 dev_dbg(&mfi->udev->dev, "prop: %d\n", psp); 121 121 122 122 ret = pm_runtime_get_sync(&mfi->udev->dev); 123 - if (ret < 0) 123 + if (ret < 0) { 124 + pm_runtime_put_noidle(&mfi->udev->dev); 124 125 return ret; 126 + } 125 127 126 128 switch (psp) { 127 129 case POWER_SUPPLY_PROP_CHARGE_TYPE:
+1
drivers/usb/mtu3/mtu3_gadget.c
··· 564 564 565 565 spin_unlock_irqrestore(&mtu->lock, flags); 566 566 567 + synchronize_irq(mtu->irq); 567 568 return 0; 568 569 } 569 570
+6 -1
drivers/usb/serial/cyberjack.c
··· 357 357 struct device *dev = &port->dev; 358 358 int status = urb->status; 359 359 unsigned long flags; 360 + bool resubmitted = false; 360 361 361 - set_bit(0, &port->write_urbs_free); 362 362 if (status) { 363 363 dev_dbg(dev, "%s - nonzero write bulk status received: %d\n", 364 364 __func__, status); 365 + set_bit(0, &port->write_urbs_free); 365 366 return; 366 367 } 367 368 ··· 395 394 goto exit; 396 395 } 397 396 397 + resubmitted = true; 398 + 398 399 dev_dbg(dev, "%s - priv->wrsent=%d\n", __func__, priv->wrsent); 399 400 dev_dbg(dev, "%s - priv->wrfilled=%d\n", __func__, priv->wrfilled); 400 401 ··· 413 410 414 411 exit: 415 412 spin_unlock_irqrestore(&priv->lock, flags); 413 + if (!resubmitted) 414 + set_bit(0, &port->write_urbs_free); 416 415 usb_serial_port_softint(port); 417 416 } 418 417
+10
drivers/usb/serial/option.c
··· 250 250 #define QUECTEL_PRODUCT_EP06 0x0306 251 251 #define QUECTEL_PRODUCT_EM12 0x0512 252 252 #define QUECTEL_PRODUCT_RM500Q 0x0800 253 + #define QUECTEL_PRODUCT_EC200T 0x6026 253 254 254 255 #define CMOTECH_VENDOR_ID 0x16d8 255 256 #define CMOTECH_PRODUCT_6001 0x6001 ··· 1118 1117 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0, 0) }, 1119 1118 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x10), 1120 1119 .driver_info = ZLP }, 1120 + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) }, 1121 1121 1122 1122 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, 1123 1123 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, ··· 1191 1189 .driver_info = NCTRL(0) | RSVD(1) }, 1192 1190 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1054, 0xff), /* Telit FT980-KS */ 1193 1191 .driver_info = NCTRL(2) | RSVD(3) }, 1192 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1055, 0xff), /* Telit FN980 (PCIe) */ 1193 + .driver_info = NCTRL(0) | RSVD(1) }, 1194 1194 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910), 1195 1195 .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) }, 1196 1196 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM), ··· 1205 1201 .driver_info = NCTRL(0) }, 1206 1202 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910), 1207 1203 .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, 1204 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1203, 0xff), /* Telit LE910Cx (RNDIS) */ 1205 + .driver_info = NCTRL(2) | RSVD(3) }, 1208 1206 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910_USBCFG4), 1209 1207 .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) }, 1210 1208 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920), ··· 1221 1215 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1213, 0xff) }, 1222 1216 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1214), 1223 1217 .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) }, 1218 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1230, 0xff), /* Telit LE910Cx (rmnet) */ 1219 + .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, 1220 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1231, 0xff), /* Telit LE910Cx (RNDIS) */ 1221 + .driver_info = NCTRL(2) | RSVD(3) }, 1224 1222 { USB_DEVICE(TELIT_VENDOR_ID, 0x1260), 1225 1223 .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, 1226 1224 { USB_DEVICE(TELIT_VENDOR_ID, 0x1261),