summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/usb/uhub.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/dev/usb/uhub.c b/sys/dev/usb/uhub.c
index 3fbc572e1021..8be236b0a60f 100644
--- a/sys/dev/usb/uhub.c
+++ b/sys/dev/usb/uhub.c
@@ -85,6 +85,7 @@ Static usbd_status uhub_explore(usbd_device_handle hub);
Static void uhub_intr(usbd_xfer_handle, usbd_private_handle,usbd_status);
#if defined(__FreeBSD__)
+Static bus_driver_added_t uhub_driver_added;
Static bus_child_detached_t uhub_child_detached;
#endif
@@ -105,6 +106,7 @@ struct cfattach uhub_uhub_ca = {
};
#elif defined(__FreeBSD__)
USB_DECLARE_DRIVER_INIT(uhub,
+ DEVMETHOD(bus_driver_added, uhub_driver_added),
DEVMETHOD(bus_child_detached, uhub_child_detached),
DEVMETHOD(device_suspend, bus_generic_suspend),
DEVMETHOD(device_resume, bus_generic_resume),
@@ -598,6 +600,19 @@ uhub_child_detached(device_t self, device_t child)
}
}
}
+
+Static void
+uhub_driver_added(device_t _dev, driver_t *_driver)
+{
+ /* Don't do anything, as reprobing does not work currently. We should
+ * really call through to usbd_new_device or a function along those
+ * lines that reinitialises the device if it is not owned by any
+ * driver. But this is complicated. Manual replugging by the user is
+ * easier.
+ */
+
+ ;
+}
#endif