On Thu, Dec 05, 2013 at 02:03:23PM +0000, David Woodhouse wrote:
Just debugged the following:
ehci_setup() happens. Starts a thread to probe its ports... ohci_setup() happens. Starts a thread to probe its ports... OHCI probes port zero, decides there's nothing there. EHCI probes port zero, decides there's a USB1 device there and gives it away to OHCI... which is never going to see it.
What is supposed to happen, is that usb_setup() sees that there is an ehci device and only runs ehci_setup() on the whole device. ohci_setup is not supposed to run from usb_setup() for that device at all. Then, if the ehci code finds a legacy device, it runs ohci_setup() from ehci_note_port() after it has configured all the legacy devices into legacy mode.
This certainly used to work, I'll take a look.
-Kevin