The difference is most likely meaningless; it is probably caused a
different order of initialization of the EHCI and UHCI controllers.
No. It is caused by the EHCI controller being initialized.
When an EHCI controller is initialized, it switches all the USB
connections from its companion controllers to itself. Hence any device
which _was_ connected to the UHCI controller will _now_ be connected to
the EHCI controller. Consequently the UHCI controller is unable to
communicate with the device and cannot enumerate it.
After a short time, the EHCI controller driver realizes that the device
can't run at high speed and switches it back to the UHCI controller.
At that point it gets enumerated for the second time, successfully.
The difference must have been that under 2.6.26 the EHCI controller was
initialized _before_ the 3-1 device was detected, so there was no
aborted attempt at enumeration.
If you want to prevent all errors of this sort, all you have to do is
insure that ehci-hcd is loaded before either uhci-hcd or ohci-hcd
during system startup.
Alan Stern
--