Re: What is TDI in ehci_is_TDI()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 5 Feb 2009, Julie Zhu wrote:

> Hello,
> 
> I wonder what does "TDI" stand for in ehci_is_TDI()? The current one
> checks hcd->has_tt, as in ehci.h:

"TDI" is the abbreviation for a company name (I don't know what the 
original full name was).

> #define ehci_is_TDI(e)          (ehci_to_hcd(e)->has_tt)
> 
> Is it true that if an EHCI host controller has Transaction Translator,
> which means has_tt = 1, then it becomes "TDI"?

I don't know the exact sequence of events.  Some company, either ARC
or TDI, developed an EHCI controller with an integrated Transaction
Translator.  Their intellectual property has moved on and is now being
licensed or copied by other companies that also make EHCI controllers 
(Freescale, Intel, and maybe more).

So yes, this macro selects EHCI host controllers that have an
integrated TT.

> The part worries me is that in ehci_reset():
> 
> if (ehci_is_TDI(ehci))
> 	tdi_reset (ehci);
> 
> And in tdi_reset(), it accesses a USBMOD register, which is not EHCI
> defined.

That's because the integrated TT is not in the original EHCI 
specification.  It is an extension added by ARC/TDI.

> Can someone clarify the correct way to implement the driver for an EHCI
> compliant host controller with transaction translator?

If you mean a host controller that complies exactly with the EHCI spec 
then there is no such thing.  By definition, such controllers do not 
have TTs.

>  Since the USBMOD
> register is not EHCI specified, we are not going to have that.

You mean you designing your own EHCI controller, and it won't have an 
integrated TT?

>  Have I
> missed something?

Probably.  But it's hard to tell what you've missed.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux