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/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel