Great,thanks Alan and David.
Your answers are exactly what I really needed.

Alan,
    According to your implication,I took a look at
rh_call_control(),and finally found such piece of code,I felt this
explains my question clearly.
    376         case DeviceRequest | USB_REQ_GET_DESCRIPTOR:
    377                 switch (wValue & 0xff00) {
    378                 case USB_DT_DEVICE << 8:
    379                         if (hcd->driver->flags & HCD_USB2)
    380                                 bufp = usb2_rh_dev_descriptor;
    381                         else if (hcd->driver->flags & HCD_USB11)
    382                                 bufp = usb11_rh_dev_descriptor;
    383                         else
    384                                 goto error;
    385                         len = 18;
    386                         break;

Now my concern is, for root hub, here we can see, hcd->driver->flags
will be used to decide which descriptor will be returned, however,
what if non-root hub?


> If the root hub doesn't operate at high speed then it returns 0.  If
> the root hub supports high speed then it returns 1.  See
> rh_call_control() in drivers/usb/core/hcd.c.
>
> As far as I know, there are no root hubs with more than one TT.
>
> Alan Stern
>
>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
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