Fwd: [vivid PATCH] usb: xhci: Makefile: move xhci-pci and xhci-plat-hcd after xhci-hcd

Hui Wang hui.wang at canonical.com
Tue Jul 5 04:34:13 UTC 2016


Will someone review and merge this patch?


-------- Forwarded Message --------
Subject: 	[vivid PATCH] usb: xhci: Makefile: move xhci-pci and 
xhci-plat-hcd after xhci-hcd
Date: 	Thu, 30 Jun 2016 10:06:38 +0800
From: 	Hui Wang <hui.wang at canonical.com>
To: 	kernel-team at lists.ubuntu.com
CC: 	hui.wang at canonical.com

From: "Lu, Baolu" <baolu.lu at linux.intel.com>

BugLink: http://bugs.launchpad.net/bugs/1597564

Module xhci-pci and xhci-plat-hcd depend on xhci-hcd. Module xhci-hcd
should be put at a place before xhci-pci and xhci-plat-hcd. Otherwise,
xhci_hcd_init() might be executed after other functions in xhci-hcd if
they are all selected to be built in.

Signed-off-by: Lu Baolu <baolu.lu at linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman at linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
(cherry picked from commit 8451a34ff6c7c756e9e0f0094a3ba856c9734e5d)
Signed-off-by: Hui Wang <hui.wang at canonical.com>
This patch is only needed by vivid kernel, the xenial kernel already
had this patch.

With this patch, the ECHI host controller will be registerd to
USB host bus1 and XHCI host controllers will be registered to
USB host bus2 and bus3, when reboot or shutdown, the system will
call XHCI_shutdown() first, in this situation the system will not

Without this patch, the XHCI will be registered to USB host bus1 and
bus2, the EHCI will be registered to USB host bus3, when reboot or
shutdown, the system will call EHCI_shutdown() first, the system will
hang inside the EHCI_shutdown().

According to the explanation of Intel side, this problem has something
to do with port switching between EHCI and xHCI controller, before EHCI
and XHCI drivers are loaded, the USB pci code will switch over ports
from EHCI to XHCI if possible at boot, so the port belongs to XHCI now,
if EHCI_shutdown() is called first, it will try to turn off a port that
does not belong to it, then the system hang. If XHCI_shutdown() is called
first, it will give back the port to EHCI, then EHCI_shutdown() will not

  drivers/usb/host/Makefile | 5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index d6216a4..bd9a828 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -28,9 +28,6 @@ obj-$(CONFIG_USB_WHCI_HCD)	+= whci/
  obj-$(CONFIG_PCI)		+= pci-quirks.o
-obj-$(CONFIG_USB_XHCI_PCI)	+= xhci-pci.o
-obj-$(CONFIG_USB_XHCI_PLATFORM) += xhci-plat-hcd.o
  obj-$(CONFIG_USB_EHCI_HCD)	+= ehci-hcd.o
  obj-$(CONFIG_USB_EHCI_PCI)	+= ehci-pci.o
  obj-$(CONFIG_USB_EHCI_HCD_PLATFORM)	+= ehci-platform.o
@@ -65,6 +62,8 @@ obj-$(CONFIG_USB_OHCI_HCD_PXA27X)	+= ohci-pxa27x.o
  obj-$(CONFIG_USB_UHCI_HCD)	+= uhci-hcd.o
  obj-$(CONFIG_USB_FHCI_HCD)	+= fhci.o
  obj-$(CONFIG_USB_XHCI_HCD)	+= xhci-hcd.o
+obj-$(CONFIG_USB_XHCI_PCI)	+= xhci-pci.o
+obj-$(CONFIG_USB_XHCI_PLATFORM) += xhci-plat-hcd.o
  obj-$(CONFIG_USB_SL811_HCD)	+= sl811-hcd.o
  obj-$(CONFIG_USB_SL811_CS)	+= sl811_cs.o
  obj-$(CONFIG_USB_U132_HCD)	+= u132-hcd.o

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20160705/be00508d/attachment.html>

More information about the kernel-team mailing list