On Mon, 23 Feb 2004, David Brownell wrote: > The UHCI notion of a suspended controller > seems to be more like the notion of an "empty schedule", where only > the root hub status polling is active.
Or a little more accurately, the schedule is allowed to be nonempty but the controller doesn't execute it. Also, root hub status polling isn't a function of the controller; the controller merely maintains the contents of the port status & control registers. (In fact, I don't think there's any to stop it from doing that. You can't turn off the power to any port...) The UHCI document uses the term "Global Suspend Mode" slightly differently. It means a state in which the controller isn't executing the schedule but it will generate a global Resume signal on the bus and issue an interrupt request in response to a connection, disconnection, or remote wakeup event. So it's possible for the USB bus to be globally suspended without the controller being in Global Suspend Mode! > > You could add a STARTING state, sort of the obverse of the QUIESCING > > state. It would behave just like RUNNING except that URB submissions > > would not be accepted. > > ... except that one of the first things that happens when you register > the root hub is submitting the hub status interrupt transfer. Still > seems simpler to me to have the HCD flag when the hardware is really up. > Of course that could be a usb_hc_running() call too. Well, the glue layer already treats root hub URBs differently from others. There's no reason they couldn't be allowed during the STARTING state. The real problem seems to be that the start() method does two things: turn on the controller hardware and register the root hub. It becomes tricky to change the state in between those two events. Alan Stern ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
