What does struct usb_tt * tt used for?

"jidong xiao" <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
  I saw there is a struct usb_tt *tt as an element of struct
usb_device, and there also is a struct usb_tt tt as an element of
struct usb_hub, I am confused by these two "tt". I thought only hubs
can have tt, so what does the pointer tt within struct usb_deivce used
for normal usb device?In other words, why do we prepare a pointer tt
for struct usb_device?

In particular, inside hub_port_init(),

	/* Set up TT records, if needed  */
	if (hdev->tt) {
		udev->tt = hdev->tt;
		udev->ttport = hdev->ttport;
	} else if (udev->speed != USB_SPEED_HIGH
			&& hdev->speed == USB_SPEED_HIGH) {
		udev->tt = &hub->tt;
		udev->ttport = port1;
	}

I don't understand this entire "if statement",say, if hdev->tt is
true, this means it is a high speed hub, so what? else if the device
is full/low speed and the hub is high speed, still so what?

Regards
Jason

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.