summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2014-10-08 07:00:50 +0000
committerhselasky <hselasky@FreeBSD.org>2014-10-08 07:00:50 +0000
commit3a2fd4b2473c379a563488eee36c1c1eade342a2 (patch)
tree5a93d5b2aa00843826e57cc1c0f063f0aecd64fa /sys/dev/usb/controller
parentb8f8abc3284c85e5e71b70e6166eab26ed703634 (diff)
downloadFreeBSD-src-3a2fd4b2473c379a563488eee36c1c1eade342a2.zip
FreeBSD-src-3a2fd4b2473c379a563488eee36c1c1eade342a2.tar.gz
Add support for disabling USB enumeration in general or on selected
USB HUBs. MFC after: 2 weeks
Diffstat (limited to 'sys/dev/usb/controller')
-rw-r--r--sys/dev/usb/controller/usb_controller.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/dev/usb/controller/usb_controller.c b/sys/dev/usb/controller/usb_controller.c
index dc10591..1d202dd 100644
--- a/sys/dev/usb/controller/usb_controller.c
+++ b/sys/dev/usb/controller/usb_controller.c
@@ -102,6 +102,14 @@ static int usb_no_shutdown_wait = 0;
SYSCTL_INT(_hw_usb, OID_AUTO, no_shutdown_wait, CTLFLAG_RWTUN,
&usb_no_shutdown_wait, 0, "No USB device waiting at system shutdown.");
+#if USB_HAVE_DISABLE_ENUM
+static int usb_disable_enumeration = 0;
+SYSCTL_INT(_hw_usb, OID_AUTO, disable_enumeration, CTLFLAG_RWTUN,
+ &usb_disable_enumeration, 0, "Set to disable all USB device enumeration.");
+#else
+#define usb_disable_enumeration 0
+#endif
+
static devclass_t usb_devclass;
static device_method_t usb_methods[] = {
@@ -371,7 +379,8 @@ usb_bus_explore(struct usb_proc_msg *pm)
USB_BUS_LOCK(bus);
}
- if (udev != NULL && udev->hub != NULL) {
+ if (usb_disable_enumeration == 0 &&
+ udev != NULL && udev->hub != NULL) {
if (bus->do_probe) {
bus->do_probe = 0;
OpenPOWER on IntegriCloud