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

Reply via email to