aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb/controller/usb_controller.c
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2012-01-03 08:31:47 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2012-01-03 08:31:47 +0000
commit58a1b8331ec91abf8f360ec8e7e77f156d0e515c (patch)
treeafcfc7ddbe7849e6a75deeb2292b81c6686e0b2c /sys/dev/usb/controller/usb_controller.c
parentb3d2ec6ac45a3b8e1aa8b23ea58de55cd1fff8d4 (diff)
Notes
Diffstat (limited to 'sys/dev/usb/controller/usb_controller.c')
-rw-r--r--sys/dev/usb/controller/usb_controller.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/usb/controller/usb_controller.c b/sys/dev/usb/controller/usb_controller.c
index d5303a5dc0d9..e50c4eb67c74 100644
--- a/sys/dev/usb/controller/usb_controller.c
+++ b/sys/dev/usb/controller/usb_controller.c
@@ -472,10 +472,18 @@ usb_bus_resume(struct usb_proc_msg *pm)
if (bus->methods->set_hw_power != NULL)
(bus->methods->set_hw_power) (bus);
+ /* restore USB configuration to index 0 */
err = usbd_set_config_index(udev, 0);
if (err)
device_printf(bus->bdev, "Could not configure root HUB\n");
+ /* probe and attach */
+ err = usb_probe_and_attach(udev, USB_IFACE_INDEX_ANY);
+ if (err) {
+ device_printf(bus->bdev, "Could not probe and "
+ "attach root HUB\n");
+ }
+
usbd_enum_unlock(udev);
USB_BUS_LOCK(bus);