Another separate issue,still focus on this piece of code,(inside
drivers/usb/core/hub.c, hub_configure())

> >
> >     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);
> >     ...

see case 2,note that usb_set_interface() is called,I don't understand
the purpose of calling this function,you know,based on usb spec 2.0,
Table 11-14, "hubs are allowed to support only one interface",thus
neither GET_INTERFACE nor SET_INTERFACE is supported by hubs,or say,
undefined.So I also looked through the internal part of
usb_set_interface,maybe we actually won't send any request to the
hub,but why we call this function at this situation.

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