Kyle McMartin c19187e
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
Kyle McMartin c19187e
index 11482b6..b05ff9c 100644
Kyle McMartin c19187e
--- a/drivers/usb/host/xhci-pci.c
Kyle McMartin c19187e
+++ b/drivers/usb/host/xhci-pci.c
Kyle McMartin c19187e
@@ -179,9 +179,25 @@ static struct pci_driver xhci_pci_driver = {
Kyle McMartin c19187e
 	.shutdown = 	usb_hcd_pci_shutdown,
Kyle McMartin c19187e
 };
Kyle McMartin c19187e
 
Kyle McMartin c19187e
+
Kyle McMartin c19187e
+static int enable;
Kyle McMartin c19187e
+module_param(enable, int, S_IRUGO);
Kyle McMartin c19187e
+MODULE_PARM_DESC(enable, "Enable XHCI host controller");
Kyle McMartin c19187e
+
Kyle McMartin c19187e
 int xhci_register_pci(void)
Kyle McMartin c19187e
 {
Kyle McMartin c19187e
-	return pci_register_driver(&xhci_pci_driver);
Kyle McMartin c19187e
+	/* xhci will prevent suspend/resume if it's loaded.
Kyle McMartin c19187e
+	 * force user to pass xhci.enable=1 to the kernel in order
Kyle McMartin c19187e
+	 * to get usb3.0 support for the time being.
Kyle McMartin c19187e
+	 *
Kyle McMartin c19187e
+	 * ugly yes, but there's few enough users out there using
Kyle McMartin c19187e
+	 * usb3.0, and a lot who just have the hardware breaking
Kyle McMartin c19187e
+	 * their suspend.
Kyle McMartin c19187e
+	 */
Kyle McMartin c19187e
+	if (enable)
Kyle McMartin c19187e
+		return pci_register_driver(&xhci_pci_driver);
Kyle McMartin c19187e
+	else
Kyle McMartin c19187e
+		return 0;
Kyle McMartin c19187e
 }
Kyle McMartin c19187e
 
Kyle McMartin c19187e
 void xhci_unregister_pci(void)