Skip to contentSkip to conversation

Patch "xhci: resume USB 3 roothub first" has been added to the 4.5-stable tree

PATCH [email protected] 1 participant 1 message Apr 27, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

xhci: resume USB 3 roothub first

to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
xhci-resume-usb-3-roothub-first.patch
and it can be found in the queue-4.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 671ffdff5b13314b1fc65d62cf7604b873fb5dc4 Mon Sep 17 00:00:00 2001

From: Mathias Nyman <[email protected]>
Date: Fri, 8 Apr 2016 16:25:06 +0300
Subject: xhci: resume USB 3 roothub first

From: Mathias Nyman <[email protected]>

commit 671ffdff5b13314b1fc65d62cf7604b873fb5dc4 upstream.

Give USB3 devices a better chance to enumerate at USB 3 speeds if they are connected to a suspended host.
Solves an issue with NEC uPD720200 host hanging when partially enumerating a USB3 device as USB2 after host controller runtime resume.

---
 drivers/usb/host/xhci.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/usb/host/xhci.c +3 -3
@@ -1108,8 +1108,8 @@ int xhci_resume(struct xhci_hcd *xhci, b
 		/* Resume root hubs only when have pending events. */
 		status = readl(&xhci->op_regs->status);
 		if (status & STS_EINT) {
-			usb_hcd_resume_root_hub(hcd);
 			usb_hcd_resume_root_hub(xhci->shared_hcd);
+			usb_hcd_resume_root_hub(hcd);
 		}
 	}
 
@@ -1124,10 +1124,10 @@ int xhci_resume(struct xhci_hcd *xhci, b
 
 	/* Re-enable port polling. */
 	xhci_dbg(xhci, "%s: starting port polling.\n", __func__);
-	set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
-	usb_hcd_poll_rh_status(hcd);
 	set_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
 	usb_hcd_poll_rh_status(xhci->shared_hcd);
+	set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
+	usb_hcd_poll_rh_status(hcd);
 
 	return retval;
 }

Patches currently in stable-queue which might be from [email protected] are

queue-4.5/usb-host-xhci-plat-make-enum-xhci_plat_type-start-at-a-non-zero-value.patch queue-4.5/usb-host-xhci-plat-fix-cannot-work-if-r-car-gen2-3-run-on-above-4gb-phys.patch queue-4.5/usb-xhci-applying-xhci_pme_stuck_quirk-to-intel-bxt-b0-host.patch queue-4.5/xhci-resume-usb-3-roothub-first.patch queue-4.5/usb-host-xhci-add-a-new-quirk-xhci_no_64bit_support.patch queue-4.5/xhci-fix-10-second-timeout-on-removal-of-pci-hotpluggable-xhci-controllers.patch queue-4.5/usb-xhci-fix-wild-pointers-in-xhci_mem_cleanup.patch