summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 1a387de..0f942e1 100644
--- a/sys/dev/usb/controller/usb_controller.c
+++ b/sys/dev/usb/controller/usb_controller.c
@@ -473,10 +473,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);
OpenPOWER on IntegriCloud