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