disable xhci by default

see spec %changelog for rationale.
This commit is contained in:
Kyle McMartin 2010-10-13 00:01:19 -04:00
parent a2d889c53a
commit c19187e334
2 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,31 @@
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)

View File

@ -619,6 +619,8 @@ Patch204: linux-2.6-debug-always-inline-kzalloc.patch
Patch300: create-sys-fs-cgroup-to-mount-cgroupfs-on.patch
Patch360: disable-xhci-by-default.patch
Patch380: linux-2.6-defaults-pci_no_msi.patch
Patch381: linux-2.6-defaults-pci_use_crs.patch
Patch382: linux-2.6-defaults-no-pm-async.patch
@ -1217,6 +1219,7 @@ ApplyPatch linux-2.6-32bit-mmap-exec-randomization.patch
# NFSv4
# USB
ApplyPatch disable-xhci-by-default.patch
# WMI
@ -1989,6 +1992,18 @@ fi
# and build.
%changelog
* Wed Oct 13 2010 Kyle McMartin <kyle@redhat.com>
- Disable XHCI registration by default. Passing xhci.enable=1 to the
kernel will enable it, as will
echo "options xhci-hcd enable=1" >/etc/modprobe.d/xhci.conf
This is necessary, because it is beginning to turn up on more and
more boards, and prevents suspend if the device is probed (since it
does not implement suspend handlers.)
Simply removing the module alias would work (and require you to
manually load the driver, like for floppy) however, there's a chance
people would like to install onto usb3 drives, so let's provide them
with an easy means to enable it (the grub cmdline.)
* Tue Oct 12 2010 Kyle McMartin <kyle@redhat.com> 2.6.35.6-42
- Fix devicemapper UUID field cannot be assigned after map creation
(rhbz#641476) thanks pjones@.