The Intel error reports here are kind of unclear.
_When_ are they still in EHCI mode?
Right. In general the driver _does_ write to the port owner bit when
it sees a low-speed device is attached to the port. If that didn't
happen in this case, maybe it's because the driver didn't see it.
There are only one or two places in the code where the driver checks.
It certainly would help us if the tests were made on a kernel with
CONFIG_USB_DEBUG enabled.
This implies that the reset sequence finished successfully. Did that
actually happen?
But above they said that it _had_ completed! Did they mean that the
reset was complete but the driver hadn't yet detected that it was
complete?
That seems likely. There's no way (as far as I can tell) for a host to
see a disconnect while a reset is in progress. Of course, as soon as
the reset is over then the host should see the disconnect, and it
should set the corresponding Connect-Status-Changed bit.
Amusing scenario: Suppose that ehci-hcd initializes the EHCI controller
(taking control of the port), sees that the device isn't high speed,
and switches port ownership back to the companion controller, all
during the span of the companion's reset. The companion would never
know anything had happened! But then everything should just work --
the port would be enabled and communication should proceed normally.
Alan Stern
-