ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2012年8月28日 星期二

usb : implement the "componion" attr on TDI type controller

usb 2.0 一般使用 ehci controller
一般會有一個 1.1 的 controller 叫 companion controller,跟 ehci 一起,接在 usb 末端的 TT (Tansition Transistor) 後面。

然後 programmer 可以控制這個 TT ,讓他接到 componion controller 上,就變成 1.1。
接到 ehci 上,就變成 2.0。

linux 也 follow 這個,在 usb device 的 sys filesystem 裡,實做一個 "componion" attribute file。

把數字寫進這個 componion file,該 port (--) 的 TT 就會接到 componion controll 上。
要恢復的話,就把port number 的負值寫到 componion 上 (e.g: -4),TT 就會接回 ehci controller 。
藉此,可以分別控制 各個 ehci 的速度。



但是有些 controller 把 1.0 的功能也作在 ehci 裡,同時內建 TT,這樣,就沒有 companion controller 了。 == source code 叫這種 controller 是 TDI , structure 中用 has_tt 來代表。

這樣,就沒辦法強制工作在 1.1 了。




但是,這邊有一個 patch,是利用這類 controller 的 : +#define PORT_PFSC (1<<24) /* port force full-speed connect */
強制讓 ehci 工作在 full speed,來模擬 componion 的作用。

ref : http://permalink.gmane.org/gmane.linux.usb.general/14891

沒有留言:

標籤

網誌存檔