|
@@ -9,6 +9,7 @@
|
|
|
*/
|
|
|
|
|
|
#include <linux/types.h>
|
|
|
+#include <linux/kconfig.h>
|
|
|
#include <linux/kernel.h>
|
|
|
#include <linux/pci.h>
|
|
|
#include <linux/init.h>
|
|
@@ -742,6 +743,19 @@ void usb_enable_xhci_ports(struct pci_dev *xhci_pdev)
|
|
|
{
|
|
|
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
|