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