Commit 2c4e969c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull USB driver fixes from Greg KH:
 "Here are some USB driver fixes and new device ids for 5.15-rc3.

  They include:

   - usb-storage quirk additions

   - usb-serial new device ids

   - usb-serial driver fixes

   - USB roothub registration bugfix to resolve a long-reported issue

   - usb gadget driver fixes for a large number of small things

   - dwc2 driver fixes

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

* tag 'usb-5.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (28 commits)
  USB: serial: option: add device id for Foxconn T99W265
  USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter
  USB: serial: cp210x: add part-number debug printk
  USB: serial: cp210x: fix dropped characters with CP2102
  MAINTAINERS: usb, update Peter Korsgaard's entries
  usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned()
  usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c
  Re-enable UAS for LaCie Rugged USB3-FW with fk quirk
  USB: serial: option: remove duplicate USB device ID
  USB: serial: mos7840: remove duplicated 0xac24 device ID
  arm64: dts: qcom: ipq8074: remove USB tx-fifo-resize property
  usb: gadget: f_uac2: Populate SS descriptors' wBytesPerInterval
  usb: gadget: f_uac2: Add missing companion descriptor for feedback EP
  usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA
  usb: core: hcd: Modularize HCD stop configuration in usb_stop_hcd()
  xhci: Set HCD flag to defer primary roothub registration
  usb: core: hcd: Add support for deferring roothub registration
  usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave
  usb: dwc3: core: balance phy init and exit
  Revert "USB: bcma: Add a check for devm_gpiod_get"
  ...
parents 7d42e981 0292dbd7
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -19288,13 +19288,12 @@ S: Maintained
F:	drivers/usb/misc/chaoskey.c
USB CYPRESS C67X00 DRIVER
M:	Peter Korsgaard <jacmet@sunsite.dk>
L:	linux-usb@vger.kernel.org
S:	Maintained
S:	Orphan
F:	drivers/usb/c67x00/
USB DAVICOM DM9601 DRIVER
M:	Peter Korsgaard <jacmet@sunsite.dk>
M:	Peter Korsgaard <peter@korsgaard.com>
L:	netdev@vger.kernel.org
S:	Maintained
W:	http://www.linux-usb.org/usbnet
+0 −2
Original line number Diff line number Diff line
@@ -487,7 +487,6 @@
				interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
				phys = <&qusb_phy_0>, <&usb0_ssphy>;
				phy-names = "usb2-phy", "usb3-phy";
				tx-fifo-resize;
				snps,is-utmi-l1-suspend;
				snps,hird-threshold = /bits/ 8 <0x0>;
				snps,dis_u2_susphy_quirk;
@@ -528,7 +527,6 @@
				interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
				phys = <&qusb_phy_1>, <&usb1_ssphy>;
				phy-names = "usb2-phy", "usb3-phy";
				tx-fifo-resize;
				snps,is-utmi-l1-suspend;
				snps,hird-threshold = /bits/ 8 <0x0>;
				snps,dis_u2_susphy_quirk;
+14 −0
Original line number Diff line number Diff line
@@ -1100,6 +1100,19 @@ static int cdns3_ep_run_stream_transfer(struct cdns3_endpoint *priv_ep,
	return 0;
}

static void cdns3_rearm_drdy_if_needed(struct cdns3_endpoint *priv_ep)
{
	struct cdns3_device *priv_dev = priv_ep->cdns3_dev;

	if (priv_dev->dev_ver < DEV_VER_V3)
		return;

	if (readl(&priv_dev->regs->ep_sts) & EP_STS_TRBERR) {
		writel(EP_STS_TRBERR, &priv_dev->regs->ep_sts);
		writel(EP_CMD_DRDY, &priv_dev->regs->ep_cmd);
	}
}

/**
 * cdns3_ep_run_transfer - start transfer on no-default endpoint hardware
 * @priv_ep: endpoint object
@@ -1351,6 +1364,7 @@ static int cdns3_ep_run_transfer(struct cdns3_endpoint *priv_ep,
		/*clearing TRBERR and EP_STS_DESCMIS before seting DRDY*/
		writel(EP_STS_TRBERR | EP_STS_DESCMIS, &priv_dev->regs->ep_sts);
		writel(EP_CMD_DRDY, &priv_dev->regs->ep_cmd);
		cdns3_rearm_drdy_if_needed(priv_ep);
		trace_cdns3_doorbell_epx(priv_ep->name,
					 readl(&priv_dev->regs->ep_traddr));
	}
+5 −2
Original line number Diff line number Diff line
@@ -726,6 +726,7 @@ static void acm_port_destruct(struct tty_port *port)
{
	struct acm *acm = container_of(port, struct acm, port);

	if (acm->minor != ACM_MINOR_INVALID)
		acm_release_minor(acm);
	usb_put_intf(acm->control);
	kfree(acm->country_codes);
@@ -1323,8 +1324,10 @@ static int acm_probe(struct usb_interface *intf,
	usb_get_intf(acm->control); /* undone in destruct() */

	minor = acm_alloc_minor(acm);
	if (minor < 0)
	if (minor < 0) {
		acm->minor = ACM_MINOR_INVALID;
		goto err_put_port;
	}

	acm->minor = minor;
	acm->dev = usb_dev;
+2 −0
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@
#define ACM_TTY_MAJOR		166
#define ACM_TTY_MINORS		256

#define ACM_MINOR_INVALID	ACM_TTY_MINORS

/*
 * Requests.
 */
Loading