]>
Commit | Line | Data |
---|---|---|
d80b5005 MCC |
1 | ==== |
2 | OHCI | |
3 | ==== | |
4 | ||
1da177e4 LT |
5 | 23-Aug-2002 |
6 | ||
7 | The "ohci-hcd" driver is a USB Host Controller Driver (HCD) that is derived | |
8 | from the "usb-ohci" driver from the 2.4 kernel series. The "usb-ohci" code | |
9 | was written primarily by Roman Weissgaerber <weissg@vienna.at> but with | |
10 | contributions from many others (read its copyright/licencing header). | |
11 | ||
12 | It supports the "Open Host Controller Interface" (OHCI), which standardizes | |
13 | hardware register protocols used to talk to USB 1.1 host controllers. As | |
14 | compared to the earlier "Universal Host Controller Interface" (UHCI) from | |
15 | Intel, it pushes more intelligence into the hardware. USB 1.1 controllers | |
16 | from vendors other than Intel and VIA generally use OHCI. | |
17 | ||
18 | Changes since the 2.4 kernel include | |
19 | ||
20 | - improved robustness; bugfixes; and less overhead | |
21 | - supports the updated and simplified usbcore APIs | |
22 | - interrupt transfers can be larger, and can be queued | |
23 | - less code, by using the upper level "hcd" framework | |
24 | - supports some non-PCI implementations of OHCI | |
25 | - ... more | |
26 | ||
27 | The "ohci-hcd" driver handles all USB 1.1 transfer types. Transfers of all | |
28 | types can be queued. That was also true in "usb-ohci", except for interrupt | |
29 | transfers. Previously, using periods of one frame would risk data loss due | |
30 | to overhead in IRQ processing. When interrupt transfers are queued, those | |
31 | risks can be minimized by making sure the hardware always has transfers to | |
32 | work on while the OS is getting around to the relevant IRQ processing. | |
33 | ||
34 | - David Brownell | |
35 | <dbrownell@users.sourceforge.net> |