Commit 7eb8f53b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull USB fixes from Greg KH:
 "Here are some small USB fixes for 5.8-rc3 to resolve some reported
  issues.

  Nothing major here:

   - gadget driver fixes

   - cdns3 driver fixes

   - xhci fixes

   - renesas_usbhs driver fixes

   - some new device support with ids

   - documentation update

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

* tag 'usb-5.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (27 commits)
  usb: renesas_usbhs: getting residue from callback_result
  Revert "usb: dwc3: exynos: Add support for Exynos5422 suspend clk"
  xhci: Poll for U0 after disabling USB2 LPM
  xhci: Return if xHCI doesn't support LPM
  usb: host: xhci-mtk: avoid runtime suspend when removing hcd
  xhci: Fix enumeration issue when setting max packet size for FS devices.
  xhci: Fix incorrect EP_STATE_MASK
  usb: cdns3: ep0: add spinlock for cdns3_check_new_setup
  usb: cdns3: trace: using correct dir value
  usb: cdns3: ep0: fix the test mode set incorrectly
  Revert "usb: dwc3: exynos: Add support for Exynos5422 suspend clk"
  usb: gadget: udc: Potential Oops in error handling code
  usb: phy: tegra: Fix unnecessary check in tegra_usb_phy_probe()
  usb: dwc3: pci: Fix reference count leak in dwc3_pci_resume_work
  usb: cdns3: ep0: add spinlock for cdns3_check_new_setup
  usb: cdns3: trace: using correct dir value
  usb: cdns3: ep0: fix the test mode set incorrectly
  usb: typec: tcpci_rt1711h: avoid screaming irq causing boot hangs
  USB: ohci-sm501: Add missed iounmap() in remove
  cdc-acm: Add DISABLE_ECHO quirk for Microchip/SMSC chip
  ...
parents fc3ebc3c ed8fa042
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
What:		/sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req
Date:		Feb 2014
Contact:	Li Jun <b47624@freescale.com>
Contact:	Li Jun <jun.li@nxp.com>
Description:
		Can be set and read.
		Set a_bus_req(A-device bus request) input to be 1 if
@@ -17,7 +17,7 @@ Description:

What:		/sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop
Date:		Feb 2014
Contact:	Li Jun <b47624@freescale.com>
Contact:	Li Jun <jun.li@nxp.com>
Description:
		Can be set and read
		The a_bus_drop(A-device bus drop) input is 1 when the
@@ -32,7 +32,7 @@ Description:

What:		/sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
Date:		Feb 2014
Contact:	Li Jun <b47624@freescale.com>
Contact:	Li Jun <jun.li@nxp.com>
Description:
		Can be set and read.
		The b_bus_req(B-device bus request) input is 1 during the time
@@ -47,7 +47,7 @@ Description:

What:		/sys/bus/platform/devices/ci_hdrc.0/inputs/a_clr_err
Date:		Feb 2014
Contact:	Li Jun <b47624@freescale.com>
Contact:	Li Jun <jun.li@nxp.com>
Description:
		Only can be set.
		The a_clr_err(A-device Vbus error clear) input is used to clear
+6 −4
Original line number Diff line number Diff line
@@ -327,7 +327,8 @@ static int cdns3_ep0_feature_handle_device(struct cdns3_device *priv_dev,
		if (!set || (tmode & 0xff) != 0)
			return -EINVAL;

		switch (tmode >> 8) {
		tmode >>= 8;
		switch (tmode) {
		case TEST_J:
		case TEST_K:
		case TEST_SE0_NAK:
@@ -704,15 +705,17 @@ static int cdns3_gadget_ep0_queue(struct usb_ep *ep,
	int ret = 0;
	u8 zlp = 0;

	spin_lock_irqsave(&priv_dev->lock, flags);
	trace_cdns3_ep0_queue(priv_dev, request);

	/* cancel the request if controller receive new SETUP packet. */
	if (cdns3_check_new_setup(priv_dev))
	if (cdns3_check_new_setup(priv_dev)) {
		spin_unlock_irqrestore(&priv_dev->lock, flags);
		return -ECONNRESET;
	}

	/* send STATUS stage. Should be called only for SET_CONFIGURATION */
	if (priv_dev->ep0_stage == CDNS3_STATUS_STAGE) {
		spin_lock_irqsave(&priv_dev->lock, flags);
		cdns3_select_ep(priv_dev, 0x00);

		erdy_sent = !priv_dev->hw_configured_flag;
@@ -737,7 +740,6 @@ static int cdns3_gadget_ep0_queue(struct usb_ep *ep,
		return 0;
	}

	spin_lock_irqsave(&priv_dev->lock, flags);
	if (!list_empty(&priv_ep->pending_req_list)) {
		dev_err(priv_dev->dev,
			"can't handle multiple requests for ep0\n");
+1 −1
Original line number Diff line number Diff line
@@ -156,7 +156,7 @@ DECLARE_EVENT_CLASS(cdns3_log_ep0_irq,
		__dynamic_array(char, str, CDNS3_MSG_MAX)
	),
	TP_fast_assign(
		__entry->ep_dir = priv_dev->ep0_data_dir;
		__entry->ep_dir = priv_dev->selected_ep;
		__entry->ep_sts = ep_sts;
	),
	TP_printk("%s", cdns3_decode_ep0_irq(__get_str(str),
+2 −0
Original line number Diff line number Diff line
@@ -1689,6 +1689,8 @@ static int acm_pre_reset(struct usb_interface *intf)

static const struct usb_device_id acm_ids[] = {
	/* quirky and broken devices */
	{ USB_DEVICE(0x0424, 0x274e), /* Microchip Technology, Inc. (formerly SMSC) */
	  .driver_info = DISABLE_ECHO, }, /* DISABLE ECHO in termios flag */
	{ USB_DEVICE(0x076d, 0x0006), /* Denso Cradle CU-321 */
	.driver_info = NO_UNION_NORMAL, },/* has no union descriptor */
	{ USB_DEVICE(0x17ef, 0x7000), /* Lenovo USB modem */
+2 −1
Original line number Diff line number Diff line
@@ -218,11 +218,12 @@ static const struct usb_device_id usb_quirk_list[] = {
	/* Logitech HD Webcam C270 */
	{ USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME },

	/* Logitech HD Pro Webcams C920, C920-C, C925e and C930e */
	/* Logitech HD Pro Webcams C920, C920-C, C922, C925e and C930e */
	{ USB_DEVICE(0x046d, 0x082d), .driver_info = USB_QUIRK_DELAY_INIT },
	{ USB_DEVICE(0x046d, 0x0841), .driver_info = USB_QUIRK_DELAY_INIT },
	{ USB_DEVICE(0x046d, 0x0843), .driver_info = USB_QUIRK_DELAY_INIT },
	{ USB_DEVICE(0x046d, 0x085b), .driver_info = USB_QUIRK_DELAY_INIT },
	{ USB_DEVICE(0x046d, 0x085c), .driver_info = USB_QUIRK_DELAY_INIT },

	/* Logitech ConferenceCam CC3000e */
	{ USB_DEVICE(0x046d, 0x0847), .driver_info = USB_QUIRK_DELAY_INIT },
Loading