]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
When usb_event_thread() first starts, wait significantly longer
authorIan Dowse <iedowse@FreeBSD.org>
Tue, 23 May 2006 01:27:23 +0000 (01:27 +0000)
committerIan Dowse <iedowse@FreeBSD.org>
Tue, 23 May 2006 01:27:23 +0000 (01:27 +0000)
commit1bbda613eb0632724a615dd16890f9f6a0046ed1
treeb2fba9a28410ec736cb7109d8c5c2da37754c7e4
parent58957d87173648541b214726c95eb4614ba31848
When usb_event_thread() first starts, wait significantly longer
before starting exploring (4 seconds), and extend the wait period
if new USB buses are attached while waiting.

This works around a problem seen when there is more than one EHCI
controller in the system and you kldload usb.ko after the system
has booted. The problem is that usb.ko contains 3 separate PCI
drivers which get initialised one by one (uhci, ohci, ehci), and
when each driver is initialised, all PCI buses are re-probed after
just the addition of that driver. This means that there can be a
significant delay between the attaching of a companion controller
and the subsequent EHCI attach, so it is possible for the companion
controller's USB 1.x bus to be scanned before the EHCI driver gets
a chance to check if there is really a USB 2.x device connected.
sys/dev/usb/usb.c