Hi,
I agree, but there is a reason why I went with a usb_bus_register_companion
function instead of with a usb_bus_register_companion_port function, the
uhci controller needs to know how many companion controllers it has
(to report this in one of its registers). When we're registering
ports 1 by 1, it does not know.
Good point.
Thinking more about this I think that the best approach would be to move
the port setup code (setting index, ops, speedmask, etc.) to
usb_bus_register_companion, and keep doing the entire registration
of all the ports in one single call. Would that work for you?
Yes. Or have some helper function to fill the USBPort struct (which could be
called by usb_register_port too). I just don't like the initialization being
done by the host adapter in one case and by the usb core code in the other case
as this is a bit confusing and makes the code harder to read.