This is a note to let you know that I've just added the patch titled
xhci: Avoid dead ports when CONFIG_USB_XHCI_HCD=n
to the 3.0-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-avoid-dead-ports-when-config_usb_xhci_hcd-n.patch
and it can be found in the queue-3.0 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.
>From 51c9e6c7732b67769c0a514d31f505e49fa82dd4 Mon Sep 17 00:00:00 2001
From: Sarah Sharp <[email protected]>
Date: Mon, 16 Apr 2012 10:56:47 -0700
Subject: xhci: Avoid dead ports when CONFIG_USB_XHCI_HCD=n
From: Sarah Sharp <[email protected]>
commit 51c9e6c7732b67769c0a514d31f505e49fa82dd4 upstream.
If the user chooses to say "no" to CONFIG_USB_XHCI_HCD on a system
with an Intel Panther Point chipset, the PCI quirks code or the EHCI
driver will switch the ports over to the xHCI host, but the xHCI driver
will never load. The ports will be powered off and seem "dead" to the
user.
Fix this by only switching the ports over if CONFIG_USB_XHCI_HCD is
either compiled in, or compiled as a module.
This patch should be backported to stable kernels as old as 3.0,
that contain commit 69e848c2090aebba5698a1620604c7dccb448684
"Intel xhci: Support EHCI/xHCI port switching."
Signed-off-by: Sarah Sharp <[email protected]>
Reported-by: Eric Anholt <[email protected]>
Reported-by: David Bein <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/usb/host/pci-quirks.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
--- a/drivers/usb/host/pci-quirks.c
+++ b/drivers/usb/host/pci-quirks.c
@@ -9,6 +9,7 @@
*/
#include <linux/types.h>
+#include <linux/kconfig.h>
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/init.h>
@@ -757,6 +758,19 @@ void usb_enable_xhci_ports(struct pci_de
{
u32 ports_available;
+ /* Don't switchover the ports if the user hasn't compiled the xHCI
+ * driver. Otherwise they will see "dead" USB ports that don't power
+ * the devices.
+ */
+ if (!IS_ENABLED(CONFIG_USB_XHCI_HCD)) {
+ dev_warn(&xhci_pdev->dev,
+ "CONFIG_USB_XHCI_HCD is turned off, "
+ "defaulting to EHCI.\n");
+ dev_warn(&xhci_pdev->dev,
+ "USB 3.0 devices will work at USB 2.0
speeds.\n");
+ return;
+ }
+
ports_available = 0xffffffff;
/* Write USB3_PSSEN, the USB 3.0 Port SuperSpeed Enable
* Register, to turn on SuperSpeed terminations for all
Patches currently in stable-queue which might be from
[email protected] are
queue-3.0/usbcore-enable-usb2-lpm-if-port-suspend-fails.patch
queue-3.0/xhci-reset-reserved-command-ring-trbs-on-cleanup.patch
queue-3.0/usb-xhci-handle-comp_tx_err-for-isoc-tds.patch
queue-3.0/xhci-add-new-short-tx-quirk-for-fresco-logic-host.patch
queue-3.0/xhci-avoid-dead-ports-when-config_usb_xhci_hcd-n.patch
queue-3.0/xhci-add-lynx-point-to-list-of-intel-switchable-hosts.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html