Commit 27983960 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull USB fixes from Greg KH:
 "Here are some small USB fixes and new device ids for 6.19-rc6

  Included in here are:

   - new usb-serial device ids

   - dwc3-apple driver fixes to get things working properly on that
     hardware platform

   - ohci/uhci platfrom driver module soft-deps with ehci to remove a
     runtime warning that sometimes shows up on some platforms.

   - quirk for broken devices that can not handle reading the BOS
     descriptor from them without going crazy.

   - usb-serial driver fixes

   - xhci driver fixes

   - usb gadget driver fixes

  All of these except for the last xhci fix has been in linux-next for a
  while. The xhci fix has been reported by others to solve the issue for
  them, so should be ok"

* tag 'usb-6.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
  xhci: sideband: don't dereference freed ring when removing sideband endpoint
  usb: gadget: uvc: retry vb2_reqbufs() with vb_vmalloc_memops if use_sg fail
  usb: gadget: uvc: return error from uvcg_queue_init()
  usb: gadget: uvc: fix interval_duration calculation
  usb: gadget: uvc: fix req_payload_size calculation
  usb: dwc3: apple: Ignore USB role switches to the active role
  usb: host: xhci-tegra: Use platform_get_irq_optional() for wake IRQs
  USB: OHCI/UHCI: Add soft dependencies on ehci_platform
  usb: dwc3: apple: Set USB2 PHY mode before dwc3 init
  USB: serial: f81232: fix incomplete serial port generation
  USB: serial: ftdi_sio: add support for PICAXE AXE027 cable
  USB: serial: option: add Telit LE910 MBIM composition
  usb: core: add USB_QUIRK_NO_BOS for devices that hang on BOS descriptor
  dt-bindings: usb: qcom,dwc3: Correct MSM8994 interrupts
  dt-bindings: usb: qcom,dwc3: Correct IPQ5018 interrupts
  tcpm: allow looking for role_sw device in the main node
  usb: dwc3: Check for USB4 IP_NAME
parents 5d1765a9 dd83dc12
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -406,7 +406,6 @@ allOf:
        compatible:
          contains:
            enum:
              - qcom,ipq5018-dwc3
              - qcom,ipq6018-dwc3
              - qcom,ipq8074-dwc3
              - qcom,msm8953-dwc3
@@ -428,6 +427,7 @@ allOf:
        compatible:
          contains:
            enum:
              - qcom,msm8994-dwc3
              - qcom,msm8996-dwc3
              - qcom,qcs404-dwc3
              - qcom,sdm660-dwc3
@@ -451,6 +451,7 @@ allOf:
        compatible:
          contains:
            enum:
              - qcom,ipq5018-dwc3
              - qcom,ipq5332-dwc3
    then:
      properties:
@@ -488,7 +489,6 @@ allOf:
            enum:
              - qcom,ipq4019-dwc3
              - qcom,ipq8064-dwc3
              - qcom,msm8994-dwc3
              - qcom,qcs615-dwc3
              - qcom,qcs8300-dwc3
              - qcom,qdu1000-dwc3
+2 −2
Original line number Diff line number Diff line
@@ -420,7 +420,6 @@ allOf:
        compatible:
          contains:
            enum:
              - qcom,ipq5018-dwc3
              - qcom,ipq6018-dwc3
              - qcom,ipq8074-dwc3
              - qcom,msm8953-dwc3
@@ -443,6 +442,7 @@ allOf:
        compatible:
          contains:
            enum:
              - qcom,msm8994-dwc3
              - qcom,msm8996-dwc3
              - qcom,qcs404-dwc3
              - qcom,sdm660-dwc3
@@ -467,6 +467,7 @@ allOf:
        compatible:
          contains:
            enum:
              - qcom,ipq5018-dwc3
              - qcom,ipq5332-dwc3
    then:
      properties:
@@ -509,7 +510,6 @@ allOf:
              - qcom,ipq4019-dwc3
              - qcom,ipq8064-dwc3
              - qcom,kaanapali-dwc3
              - qcom,msm8994-dwc3
              - qcom,qcs615-dwc3
              - qcom,qcs8300-dwc3
              - qcom,qdu1000-dwc3
+5 −0
Original line number Diff line number Diff line
@@ -1040,6 +1040,11 @@ int usb_get_bos_descriptor(struct usb_device *dev)
	__u8 cap_type;
	int ret;

	if (dev->quirks & USB_QUIRK_NO_BOS) {
		dev_dbg(ddev, "skipping BOS descriptor\n");
		return -ENOMSG;
	}

	bos = kzalloc(sizeof(*bos), GFP_KERNEL);
	if (!bos)
		return -ENOMEM;
+3 −0
Original line number Diff line number Diff line
@@ -450,6 +450,9 @@ static const struct usb_device_id usb_quirk_list[] = {
	{ USB_DEVICE(0x0c45, 0x7056), .driver_info =
			USB_QUIRK_IGNORE_REMOTE_WAKEUP },

	/* Elgato 4K X - BOS descriptor fetch hangs at SuperSpeed Plus */
	{ USB_DEVICE(0x0fd9, 0x009b), .driver_info = USB_QUIRK_NO_BOS },

	/* Sony Xperia XZ1 Compact (lilac) smartphone in fastboot mode */
	{ USB_DEVICE(0x0fce, 0x0dde), .driver_info = USB_QUIRK_NO_LPM },

+2 −0
Original line number Diff line number Diff line
@@ -993,6 +993,8 @@ static bool dwc3_core_is_valid(struct dwc3 *dwc)

	reg = dwc3_readl(dwc->regs, DWC3_GSNPSID);
	dwc->ip = DWC3_GSNPS_ID(reg);
	if (dwc->ip == DWC4_IP)
		dwc->ip = DWC32_IP;

	/* This should read as U3 followed by revision number */
	if (DWC3_IP_IS(DWC3)) {
Loading