From c19187e334cc83bad2cc313efadf0814524e56fa Mon Sep 17 00:00:00 2001 From: Kyle McMartin Date: Wed, 13 Oct 2010 00:01:19 -0400 Subject: [PATCH] disable xhci by default see spec %changelog for rationale. --- disable-xhci-by-default.patch | 31 +++++++++++++++++++++++++++++++ kernel.spec | 15 +++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 disable-xhci-by-default.patch diff --git a/disable-xhci-by-default.patch b/disable-xhci-by-default.patch new file mode 100644 index 000000000..dd1c80866 --- /dev/null +++ b/disable-xhci-by-default.patch @@ -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) diff --git a/kernel.spec b/kernel.spec index b578af9ee..a9ad61b97 100644 --- a/kernel.spec +++ b/kernel.spec @@ -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 +- 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 2.6.35.6-42 - Fix devicemapper UUID field cannot be assigned after map creation (rhbz#641476) thanks pjones@.