about device descriptor,according to usb spec 2.0,
1. A hub returns different descriptors based on whether it is
operating at high speed or full/low speed.A hub can report three
different sets of the descriptors.
2. A hub must operate at high-speed when its upstream facing port is
connected at high-speed.The hub must operate at full speed when its
upstream facing port is connected at full-speed.

Take root hub for example, how does the hub itself know whether its
upstream facing port is connected at high-speed or
full-speed?Futhermore, if a host send a GET_DESCRIPTOR request to a
hub,how does it know which set of descriptor should be reported?

Let's see following section of code,sampled from hub_configure(),we
need to judge bDeviceProtocol of the device descriptor, it can be
0,1,or 2, but it's the value reported by hub,how does the hub know
which one should be reported when it received GET_DESCRIPTOR from the
host.

    570         switch (hdev->descriptor.bDeviceProtocol) {
    571                 case 0:
    572                         break;
    573                 case 1:
    574                         dev_dbg(hub_dev, "Single TT\n");
    575                         hub->tt.hub = hdev;
    576                         break;
    577                 case 2:
    578                         ret = usb_set_interface(hdev, 0, 1);
    579                         if (ret == 0) {
    580                                 dev_dbg(hub_dev, "TT per port\n");
    581                                 hub->tt.multi = 1;
    582                         } else
    583                                 dev_err(hub_dev, "Using single
TT (err %d)\n",
    584                                         ret);
    ...

Regards&Thanks
Jason Xiao

-------------------------------------------------------------------------
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