ACK+Applied: [vivid PATCH] usb: xhci: Makefile: move xhci-pci and xhci-plat-hcd after xhci-hcd

Kamal Mostafa kamal at canonical.com
Tue Jul 5 18:31:45 UTC 2016


On Thu, Jun 30, 2016 at 10:06:38AM +0800, Hui Wang wrote:
> 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.

Applied to Vivid.  Thanks Hui.

 -Kamal

> 
> 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
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team




More information about the kernel-team mailing list