From 61c43c6d8dc2157e4fdf07551a022fe39f18921d Mon Sep 17 00:00:00 2001 From: Ian Dowse Date: Sun, 27 Mar 2005 15:31:23 +0000 Subject: [PATCH] Don't defer the boot-time exploration of high-speed USB busses. This ensures that we explore EHCI busses before their companion controllers' busses, so that ports connected to full/low speed devices will be properly routed to the companion controllers by the time the OHCI/UHCI exploration occurs. --- sys/dev/usb/usb.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sys/dev/usb/usb.c b/sys/dev/usb/usb.c index d499d63ce96..6be1d33a863 100644 --- a/sys/dev/usb/usb.c +++ b/sys/dev/usb/usb.c @@ -301,8 +301,14 @@ USB_ATTACH(usb) * the keyboard will not work until after cold boot. */ #if defined(__FreeBSD__) - if (cold) - TAILQ_INSERT_TAIL(&usb_coldexplist, sc, sc_coldexplist); + if (cold) { + /* Explore high-speed busses before others. */ + if (speed == USB_SPEED_HIGH) + dev->hub->explore(sc->sc_bus->root_hub); + else + TAILQ_INSERT_TAIL(&usb_coldexplist, sc, + sc_coldexplist); + } #else if (cold && (sc->sc_dev.dv_cfdata->cf_flags & 1)) dev->hub->explore(sc->sc_bus->root_hub); @@ -952,7 +958,7 @@ usb_child_detached(device_t self, device_t child) sc->sc_port.device = NULL; } -/* Explore all USB busses at the end of device configuration. */ +/* Explore USB busses at the end of device configuration. */ Static void usb_cold_explore(void *arg) {