[vivid PATCH] usb: xhci: Makefile: move xhci-pci and xhci-plat-hcd after xhci-hcd
Hui Wang
hui.wang at canonical.com
Thu Jun 30 02:06:38 UTC 2016
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
hang.
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
hang.
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
--
1.9.1
More information about the kernel-team
mailing list