Commit 28318f53 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull USB fixes from Greg KH:
 "Here are a number of small USB driver fixes for 5.11-rc3.

  Include in here are:

   - USB gadget driver fixes for reported issues

   - new usb-serial driver ids

   - dma from stack bugfixes

   - typec bugfixes

   - dwc3 bugfixes

   - xhci driver bugfixes

   - other small misc usb driver bugfixes

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

* tag 'usb-5.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (35 commits)
  usb: dwc3: gadget: Clear wait flag on dequeue
  usb: typec: Send uevent for num_altmodes update
  usb: typec: Fix copy paste error for NVIDIA alt-mode description
  usb: gadget: enable super speed plus
  kcov, usb: hide in_serving_softirq checks in __usb_hcd_giveback_urb
  usb: uas: Add PNY USB Portable SSD to unusual_uas
  usb: gadget: configfs: Preserve function ordering after bind failure
  usb: gadget: select CONFIG_CRC32
  usb: gadget: core: change the comment for usb_gadget_connect
  usb: gadget: configfs: Fix use-after-free issue with udc_name
  usb: dwc3: gadget: Restart DWC3 gadget when enabling pullup
  usb: usbip: vhci_hcd: protect shift size
  USB: usblp: fix DMA to stack
  USB: serial: iuu_phoenix: fix DMA from stack
  USB: serial: option: add LongSung M5710 module support
  USB: serial: option: add Quectel EM160R-GL
  USB: Gadget: dummy-hcd: Fix shift-out-of-bounds bug
  usb: gadget: f_uac2: reset wMaxPacketSize
  usb: dwc3: ulpi: Fix USB2.0 HS/FS/LS PHY suspend regression
  usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based one
  ...
parents 4ad9a28f a5c7682a
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -11,8 +11,12 @@ maintainers:

properties:
  compatible:
    items:
    oneOf:
      - const: ti,j721e-usb
      - const: ti,am64-usb
      - items:
          - const: ti,j721e-usb
          - const: ti,am64-usb

  reg:
    description: module registers
+1 −1
Original line number Diff line number Diff line
@@ -3883,7 +3883,7 @@ F: drivers/mtd/nand/raw/cadence-nand-controller.c
CADENCE USB3 DRD IP DRIVER
M:	Peter Chen <peter.chen@nxp.com>
M:	Pawel Laszczak <pawell@cadence.com>
M:	Roger Quadros <rogerq@ti.com>
R:	Roger Quadros <rogerq@kernel.org>
R:	Aswath Govindraju <a-govindraju@ti.com>
L:	linux-usb@vger.kernel.org
S:	Maintained
+5 −1
Original line number Diff line number Diff line
@@ -139,9 +139,13 @@ static struct imx_usbmisc_data *usbmisc_get_init_data(struct device *dev)
	misc_pdev = of_find_device_by_node(args.np);
	of_node_put(args.np);

	if (!misc_pdev || !platform_get_drvdata(misc_pdev))
	if (!misc_pdev)
		return ERR_PTR(-EPROBE_DEFER);

	if (!platform_get_drvdata(misc_pdev)) {
		put_device(&misc_pdev->dev);
		return ERR_PTR(-EPROBE_DEFER);
	}
	data->dev = &misc_pdev->dev;

	/*
+4 −0
Original line number Diff line number Diff line
@@ -1895,6 +1895,10 @@ static const struct usb_device_id acm_ids[] = {
	{ USB_DEVICE(0x04d8, 0xfd08),
	.driver_info = IGNORE_DEVICE,
	},

	{ USB_DEVICE(0x04d8, 0xf58b),
	.driver_info = IGNORE_DEVICE,
	},
#endif

	/*Samsung phone in firmware update mode */
+13 −3
Original line number Diff line number Diff line
@@ -465,11 +465,21 @@ static int service_outstanding_interrupt(struct wdm_device *desc)
	if (!desc->resp_count || !--desc->resp_count)
		goto out;

	if (test_bit(WDM_DISCONNECTING, &desc->flags)) {
		rv = -ENODEV;
		goto out;
	}
	if (test_bit(WDM_RESETTING, &desc->flags)) {
		rv = -EIO;
		goto out;
	}

	set_bit(WDM_RESPONDING, &desc->flags);
	spin_unlock_irq(&desc->iuspin);
	rv = usb_submit_urb(desc->response, GFP_KERNEL);
	spin_lock_irq(&desc->iuspin);
	if (rv) {
		if (!test_bit(WDM_DISCONNECTING, &desc->flags))
			dev_err(&desc->intf->dev,
				"usb_submit_urb failed with result %d\n", rv);

@@ -1027,9 +1037,9 @@ static void wdm_disconnect(struct usb_interface *intf)
	wake_up_all(&desc->wait);
	mutex_lock(&desc->rlock);
	mutex_lock(&desc->wlock);
	kill_urbs(desc);
	cancel_work_sync(&desc->rxwork);
	cancel_work_sync(&desc->service_outs_intr);
	kill_urbs(desc);
	mutex_unlock(&desc->wlock);
	mutex_unlock(&desc->rlock);

Loading