On Mon, 25 Apr 2005, David Brownell wrote:

> On Friday 22 April 2005 8:23 pm, Alan Stern wrote:
> 
> > In theory an HCD shouldn't care one way or another about whether the root 
> > hub has been registered.  As Oliver likes to say, it would be a layering 
> > violation.  The HCD should concern itself only with the hardware.
> 
> Right, but if usbcore says "activate the root hub" then port change IRQs
> can come immediately.  And then how can the HCD tell usbcore to collect
> that status, if hasn't registeed the root hub?

It can't.  Or with patch as478b, it can by calling usb_hcd_poll_rh_status
-- but that won't accomplish anything (other than invoking the hub_status
callback) until the root hub has been registered.  So what?  Does this
cause any kind of problem?


> > > It would have been, before the reset.  When you reset a device, it
> > > can't stay in the CONFIGURED state.  (But maybe details changed since
> > > then...)
> > 
> > Maybe they have; it depends on what you mean by "reset".  A port reset
> > will change the state, whereas usb_reset_device often won't.  However
> > neither of those resets applies to root hubs.  I think the reset you're
> > referring to is something internal to ehci-hcd, which doesn't change the
> > root hub's state at all.
> 
> Well, if it resets all the ports, then it's clearly affected the root
> hub's state.  Think of it as another case where that "disconnect the usb
> whole tree" primitive would kick in, too ...

So this won't matter once usb_hcd_root_hub_lost_power is written, right?


> > since the descriptor only allows for power consumption up to 255 ma, which
> > might not be high enough to express the requirements of some controllers.
> 
> Erm, the units are 2mA and the max is 250 units, so that's 500 mA.  Self
> powered hubs can do 500 mA per port.  Bus powered ones can't; neither can
> all root hubs.

>From the USB specification, table 11-13 (p.418):

  6  bHubContrCurrent  1  Maximum current requirements of the Hub Controller 
                          electronics in mA.

>From hub.c:hub_configure():

                hub->power_budget = (501 - hub->descriptor->bHubContrCurrent)
                                        / 2;

Alan Stern



-------------------------------------------------------
SF.Net email is sponsored by: Tell us your software development plans!
Take this survey and enter to win a one-year sub to SourceForge.net
Plus IDC's 2005 look-ahead and a copy of this survey
Click here to start!  http://www.idcswdc.com/cgi-bin/survey?id=105hix
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to